CPU 负载抑制 Linux 上的中断

6 linux interrupts

我有一个带有 3.2 内核的 Ubuntu 盒子、带有 2 个内核的 CPU 和基于通过 PCI 总线连接的 SJA1000 控制器的 CAN(控制器局域网)卡。

我正在测试卡的接收功能。它每秒可以处理约 4000 个数据包,相应的中断也每秒增加约 4000 次(如 /proc/interrupts 所示),并且不会对系统造成任何 CPU 负载。但是,如果我使用压力命令生成人工 CPU 负载:

chrt --idle 0 stress -c 2
Run Code Online (Sandbox Code Playgroud)

不再引发中断,因此不会收到任何消息。

为什么 CPU 负载会抑制硬件中断,对此可以采取什么措施?

小智 1

我怀疑发生的情况是 CPU 负载阻塞了 CPU 所服务的中断。

使用itop看看到底发生了什么。其输出将有助于进一步理解您的问题。