x86 disables all local interrupts (except NMI of course) before jumping to the interrupt vector.

NMI可以打断除NMI以外的任意中断的处理。

结论说完了,介绍下background吧。

If an interrupt or exception handler is called through an interrupt gate, the processor clears the interrupt enable (IF) flag in the EFLAGS register to prevent subsequent interrupts from interfering with the execution of the handler.

From SDM Volume 1

While an NMI interrupt handler is executing, the processor blocks delivery of subsequent NMIs until the next execution of the IRET instruction. This blocking of NMIs prevents nested execution of the NMI handler

From SDM Volume 3


参考资料:

  1. Can an interrupt handler be preempted by the same interrupt handler?