kernel - Handle spinlock indefinite wait edge case
* The spinlock exclusive priority mechanism can cause an indefinite
wait situation for shared locks to arise when a large number of cpu
cores are cycling the same spinlock both shared and exclusive.
This situation just won't happen for any real workload, but it
can come up in benchmarks.
* Introduce a quick hack to ensure that this situation does not lead
to a panic. The exclusive priority mechanism is ignored once a
shared spinlock has spun for greater than one second.