![如何在顶部获取有关 irq 进程的更多详细信息?](https://linux22.com/image/208610/%E5%A6%82%E4%BD%95%E5%9C%A8%E9%A1%B6%E9%83%A8%E8%8E%B7%E5%8F%96%E6%9C%89%E5%85%B3%20irq%20%E8%BF%9B%E7%A8%8B%E7%9A%84%E6%9B%B4%E5%A4%9A%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF%EF%BC%9F.png)
我已irq/21-xhci-hcd
显示为 上的进程消耗了 90% 的 CPU top
。此外,还有很多 CPU 时间花在处理软件中断 (si) 上。
这是在嵌入式 Linux 上。
这是否意味着它是 IRQ 21?然后我可以用来lspci -vvv
获取有关 IRQ 21 的更多信息吗?
如果不是这种情况,我是否需要使用其他方法,例如 dodmesg
或watch -n1 -d "cat /proc/interrupts"
?
获取更多信息的最佳方法是什么,包括哪个内核模块受到影响?哪个内核线程和函数负责?
答案1
xhci 代表可扩展主机控制器接口这是 USB 3.0“SuperSpeed”主机控制器硬件的标准。
irq/21-xhci-hcd 可能代表与某一特定 USB 总线相关的 irq。 (可以承载多个不同的USB设备)
lsusb -t
lsusb -vt
实用程序应该为您提供有关各个设备、它们所连接的总线以及所涉及的驱动程序(一个用于总线,另一个用于设备本身)的更多信息(甚至更多)。
您注意到的问题可能是某个特定的 USB 设备非常繁忙或运行不良。您应该能够识别它(感谢 lsusb 实用程序)并物理删除它(如果可能)并重新测试。
服务软件中断所花费的时间可能相关,但不一定相关。你可以检查它们是否以相同的数量级进化,/proc/stat
特别是观看“小任务“定期软中断。关于后者,虽然信息是作为 的一部分报告的/proc/stat
,但人们可能会发现更容易观看/proc/软中断(因为有明确的标签)