c -/proc/interrupts 如何更新?

标签 c linux linux-kernel irq

我想知道 /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 文件时求和。 这是内核中的常见模式。它可以防止在全局计数器上发生争用。

有关每个 CPU 变量的更多信息,您可以阅读 here .更多关于 linux 中的中断你可以得到 here .

关于c -/proc/interrupts 如何更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15217793/

相关文章:

c - 为什么在windows下可以,但在linux下就不行呢?

linux - 确定被 oom-killer 杀死的进程的虚拟机大小

c - 优先队列 C

c - 我已经编写了这段代码,但没有得到输出,任何人都可以帮我解决这个问题吗?

linux - 如何将时间戳添加到 STDERR 并重定向到文件

Linux:用于非常规文件的 mmap()

linux - Linux 内核源代码中 _PAGE_OFFSET 值定义的位置

c - C套接字中的多个相互连接试验

检查文件是否不是目录

linux - 找不到 chmod[metasploit 安装]