vkernel - Fix lockup with [v]kernel due to missing ipiq signal
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 28 Jul 2011 23:16:29 +0000 (16:16 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 28 Jul 2011 23:16:29 +0000 (16:16 -0700)
commit1b1e83e2450f55ba771b18d7674f99e8041d418b
tree0304a965c802f3ee022a435959bdfa22e8ce4dd3
parent89e181b54ffb2e8eeafaefdb83a9040a67976733
vkernel - Fix lockup with [v]kernel due to missing ipiq signal

* If the target ipiq has nothing but passively queued entries the target
  cpu will normally just process the ipi's on the next clock interrupt.

  However, if the originating cpu is forced to live-loop waiting for the
  target to the drain the target may not be aware that it needs to drain
  ASAP.

* The fix is for the originating cpu to ensure that an ipi interrupt is
  sent to the target cpu before live looping.

* This appears to primarily effect vkernels.

Reported-by: ftigeot, tuxillo
sys/kern/lwkt_ipiq.c