0x133.0 NPU Line Interrupt
- Nick Kuo
- BSOD Analysis
- 31 Mar, 2025
The BSOD sequence of event looks like this:
- OS is starting up NPU device.

- Something went wrong with NPU side, causing firmware to send line interrupts on core 2.

- GFX TDR on core 0.

- TDR process capture live dump, it queues DPCs to capture each core’s state, and waits on this completion.
- Core 1 received this DPC, completes it and wait for the rest of cores to complete.
- Core 2 is still stuck on line interrupts from NPU, it never completes the DPC.
- Core 1 triggered DPC watchdog as it has spun on core for too long.
On core 2, it is attempting to handle line interrupt from NPU, but NPU isn’t setup to receive line interrupt.
In our driver code, our ISR picks the context based on message number. This had returned nullptr and we simply returned from ISR.
(Actually, we should return false here, but it makes no difference to this case.)