2.5 マスク不可割り込みNMI

 いままで説明してきたハードウェア割り込みとは別に、NMI(マスク不可割り込み)と呼ばれる割り込み機能があります。NMIは特殊な用途に利用しています。通常の割り込みは禁止(マスク)することが可能ですが、このNMIは禁止できません。CPUの割り込み禁止(local_irq_enable関数)を行っていても、NMIが発生すると、指定した割り込みハンドラへ実行を移すことができます。

 NMIは特殊な目的で利用されます。ハードウェアに依存しますが、メモリのパリティエラー発生の捕捉、ウォッチドッグ、デバッガの強制起動などに利用されます。

 Intel x86用Linuxでは、LDTに直接NMI用の割り込みハンドラ(nmi関数)を登録しています。NMIが発生するとその時点におけるCPU状態によらず、割り込みハンドラが呼び出されます。