cat /proc/interrupts
NMI
となどのIRQを表示しますLOC
。出力の各行の説明は明確な説明を提供しますが、数値IRQ番号がない場合、x86 CPUは割り込み記述子テーブルのエントリに基づいてどのように応答しますか?
答え1
数値以外の項目は、アーキテクチャ固有の/proc/interrupts
デバイスに依存しない割り込みに対応します。
x86 では、IDT レイアウトについては次のトピックで説明します。arch/x86/include/asm/irq_vectors.h
:
- ベクトル0 ... 31:システムトラップと例外 - ハードコーディングされたイベント
- ベクトル32 ... 127:デバイス割り込み
- ベクトル 128: レガシー int80 システムコールインターフェイス
- ベクトル 129...LOCAL_TIMER_VECTOR-1
- ベクトルLOCAL_TIMER_VECTOR ... 255:特殊割り込み
アーキテクチャ固有の割り込みは 0 ~ 31 および 129 ~ 255 の IDT エントリによって処理され、ローカルタイマ割り込みは後者の範囲の最初の割り込みです。したがって、0が表示されている場合は/proc/interrupts
IDTエントリ32、NMIが表示されている場合はエントリ2です。 IDT自体は次のように設定されます。arch/x86/kernel/idt.c
。