Что такое нечисловые IRQ в /proc/interrupts?

Во-первых, в вашем файле, который вы здесь показываете, нет соответствующих данных. И предполагая, что вы нашли файл с данными, которые вы собираетесь искать, вы должны вызвать grepс параметрами:

grep -zoP 

-z будет рассматривать файл как одну огромную строку. -o вы получите только соответствующую часть -P активирует механизм регулярных выражений Perl, что позволит grep понять, какие регулярные выражения у вас есть.

3
24.01.2020, 14:00
1 ответ

Не-числовые записи в /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.

2
27.01.2020, 21:24

Теги

Похожие вопросы