9575 apix can lose interrupts after interrupt thread blocks

Review Request #1096 — Created June 1, 2018 and submitted

pwinder
illumos-gate
general

If an interrupt thread blocks, after it has completed, pending interrupts are not processed and remain queued. Once in this state, one if three paths are possible:
1. The interrupts stay queued "forever".
2. Any interrupt at the same IPL can come in and get processed but the pending ones are ignored.
3. Any interrupt can arrive at a different IPL, in which case they will get processed - but maybe delayed.

The bug was reproduceable with a combined nvme and fibre channel workload, after the change interrupts no longer went missing.

Also dtrace was used to confirm conditions did exist in all the new code paths which may have triggered a missed interrupt.

pwinder
igork
  1. Ship It!
  2. 
      
hans
  1. Ship It!
  2. 
      
kmays
  1. Ship It!
  2. 
      
pwinder
Review request changed

Status: Closed (submitted)

Loading...