0x9*_*x90 4 c linux irq linux-kernel
我想知道如何 /proc/interrupts更新?
它只有irq探测过的驱动程序,还是包含irqs系统中所有可能的列表?
正如您在内核源代码中所看到的,它显示了系统的所有可能的irq.在source/fs/proc/interrupts.c:11中,我们可以看到/proc/interrupts系统中存在与中断一样多的行.在source/kernel/irq/proc.c:418中,我们可以看到每个中断的计数器都是通过全局计数器提取的kstat_irqs_cpu(irq, cpu).因此,信息在不同的计数器中更新,每个cpu一个,并在读取proc文件时得到总和.有关per-cpu变量的更多信息,请参阅此处.有关linux中断的更多信息,请访问此处.
/ proc下的所有文件都是伪文件,这意味着它们中没有实际数据.
当您访问proc fs下的任何文件时,将调用与该特定proc文件链接的proc方法,并调用proc方法,访问某些相关的内核数据结构并动态生成数据,这些数据可以被读取和显示.proc文件中的数据通常用于显示系统的状态信息或设备驱动程序的状态.
proc fs通常作为驱动程序的一部分实现,通过将proc和seq fs层添加到驱动程序代码中,但是内核也使用proc来显示系统的状态信息.由于没有通用proc文件中的层次结构或分类,与较新的sysfs文件系统相比,很少使用它们.
要了解如何生成信息,您必须研究实现的proc层 fs/proc/interrupts.c
本网站简要介绍了其中一些方法.