Не-числовые записи в /proc/interrupts
соответствуют специфическим -для архитектуры, не связанным с -устройством -прерываниям.
В x86 макет IDT описан в arch/x86/include/asm/irq_vectors.h
:
.
- Vectors 0... 31 : system traps and exceptions - hardcoded events
- Vectors 32... 127 : device interrupts
- Vector 128 : legacy int80 syscall interface
- Vectors 129... LOCAL_TIMER_VECTOR-1
- Vectors LOCAL_TIMER_VECTOR... 255 : special interrupts
Прерывания, специфичные для архитектуры -, обрабатываются записями IDT от 0 до 31 и от 129 до 255, причем прерывание локального таймера первое в последнем диапазоне. Поэтому, когда вы видите 0 в /proc/interrupts
, это запись IDT 32; когда вы видите NMI, это запись 2; и т. д. Сама IDT устанавливается в arch/x86/kernel/idt.c
.