kernel - Fix latency issue with many cores contending on a token
* Fix a latency issue when many cores are contending on the same token.
This can be tested e.g. by setting an interface to use polling mode
and then pinging it from the outside. Ping times in excess of 60 seconds
(yes, seconds!) could occur.
* The problem turns out to be in usched_bsd4.c in the loop that tries to
acquire the current process designation. This loop runs in a critical
section (and probably its caller too) and while it checks for the
LWKT thread reschedule flag it fails to call splz() to process pending
interrupts (like IPIs) that might SET the flag.
Adding a single splz() prior to the lwkt reschedule check greatly
reduces the latency problem.