kernel - Test pending ints in more crit_exit*() paths
authorMatthew Dillon <dillon@apollo.backplane.com>
Sun, 15 Dec 2019 20:24:02 +0000 (12:24 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sun, 15 Dec 2019 20:24:02 +0000 (12:24 -0800)
commite8b1691fcb2521b46aa00c13aac55876097c6758
tree78fd2845b74ef43dbe21847730e224ba5b6a039e
parentc2ec3418751ed579ef32df1e012847d3c17cbc67
kernel - Test pending ints in more crit_exit*() paths

* A number of crit_exit*() paths, primarily in the mutex and
  spinlock code, were not testing for interrupts made pending
  on the last unwind of the critical section.

  This was originally intended to improve performance, but it
  can lead to non-deterministic latencies for processing interrupts.

* Process these pending events in such cases.  We will see if it
  affects performance but I don't think it will be noticeable.
sys/kern/kern_mutex.c
sys/kern/kern_spinlock.c
sys/platform/vkernel64/x86_64/exception.c
sys/sys/mutex2.h
sys/sys/spinlock2.h