Linux 中 /proc/interrupts 和 /proc/softirq 有什么区别?

Linux 中 /proc/interrupts 和 /proc/softirq 有什么区别?

/proc/softirq是软中断统计信息。是/proc/interrupt硬中断和软中断同时存在还是只有硬中断?

我想粗略地测量每秒硬中断和软中断的速率watch -n 1 grep 'foo' /proc/softirqwatch -n 1 grep 'bar' /proc/interrupt这样我就可以比较硬件中断与软件中断的增加速率。

我想知道是否需要减去/proc/softirq计数才能/proc/interrupt获得硬件 IRQ 的计数,因为它对两种类型都进行计数,还是/proc/interrupt仅对硬件进行计数?

答案1

软中断与硬件中断没有直接关系,它们是“下半部分”的后继者,也是微线程的前身。老人)破解 Linux 内核的不可靠指南有一个关于该主题的简短部分;我敢说其他地方有更好的资源。软中断列表定义在include/linux/interrupt.h;您会看到它们不对应于单个硬件中断。

因此,您不应该/proc/softirq从 中减去计数/proc/interrupts。后者只统计硬件中断;这些当然也可能导致软中断被使用,但是没有简单的方法来确定相关性(例如网络适​​配器上的硬件中断和NET_RX/或NET_TX软中断之间)。

相关内容