Как /proc/interrupts обновляется?

Я хотел бы знать, как /proc/interrupts обновляется?

проверено только irq драйверов или он содержит список всех возможных irqs в системе?


person 0x90    schedule 05.03.2013    source источник


Ответы (2)


Как видно из исходников ядра, оно отображает все возможные irq системы.
В source/fs/proc/interrupts.c:39 инициализируется операция последовательности, чтобы вернуть столько элементов, сколько существует прерываний в системе для /proc/interrupts.

В source/kernel/irq/proc.c :479 мы видим, что счетчики каждого прерывания извлекаются из глобальных счетчиков через kstat_irqs_cpu(irq, cpu).
Это означает, что информация о количестве прерываний обновляется в разных счетчиках, по одному для каждого процессора. Счетчики суммируются при чтении файла proc. Это общий шаблон в ядре. Это предотвращает конкуренцию на глобальном счетчике.

Подробнее о переменных для каждого процессора вы можете прочитать здесь. Подробнее о прерываниях в Linux вы можете узнать здесь.

person krase    schedule 05.03.2013

Все файлы в каталоге /proc являются псевдофайлами, что означает, что в них нет фактических данных.

Когда вы получаете доступ к любому файлу в proc fs, вызываются методы proc, связанные с этим конкретным файлом proc, и методы proc получают доступ к определенным связанным структурам данных ядра и динамически генерируют данные, которые можно читать и отображать. Данные из файла proc обычно используются для отображения информации о состоянии системы или состояния драйвера устройства.

proc fs обычно реализуется как часть драйвера путем добавления proc и уровня seq fs в код драйвера, однако proc также используется ядром для отображения информации о состоянии системы в целом. иерархия или классификация среди файлов proc, они используются редко по сравнению с более новой файловой системой sysfs.

Чтобы узнать, как генерируется информация, вы должны изучить слой proc, реализованный в fs/proc/interrupts.c.

Этот веб-сайт кратко объясняет некоторые из этих методов.

person Barath Ravikumar    schedule 05.03.2013