我想知道 /proc/interrupts
是如何更新的?
它是否只检测了 irq
的驱动程序,或者它包含系统中所有可能的 irqs
的列表?
最佳答案
正如您在内核源代码中所见,它显示了系统所有可能的 irq。
在 source/fs/proc/interrupts.c:39序列操作被初始化为返回与 /proc/interrupts
系统中存在的中断一样多的元素。
在source/kernel/irq/proc.c:479我们可以看到每个中断的计数器都是通过kstat_irqs_cpu(irq, cpu)
从全局计数器中提取的。
这意味着中断计数信息在不同的计数器中得到更新,每个 cpu 一个。计数器在读取 proc 文件时求和。
这是内核中的常见模式。它可以防止在全局计数器上发生争用。
关于c -/proc/interrupts 如何更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15217793/