追踪中断源

时间:2019-02-25 15:17:56

标签: linux linux-kernel centos7 interrupt-handling irq

我有一个运行CentOS 7.3的基于Xeon-D的平台(Linux内核3.10.0-862),并且我注意到很多未处理的中断传给了特定的IRQ(IRQ#18)。 IRQ线似乎由USB主机控制器和SMBus驱动程序共享,但是即使禁用BIOS中的所有USB端口并卸载i2c-i801模块(一次,一次,以保持内核侦听IRQ),中断仍然继续存在。线)。因此,如果不知道这些中断是来自USB还是I2C的话,我将一头雾水。

最终,事情变得如此糟糕,以至于内核仅禁用了IRQ( irq 18:没人在意... ),从而导致事物无法在smbus上正常工作。 保持这种状态的唯一方法是在内核启动cmdline中使用 noirqdebug 参数。

运行带有较新内核的Ubuntu 18.04时,我也观察到相同的问题。

我有以下问题:

  • 如何在内核和设备级别分配IRQ号?

  • 是否可能是USB或SMBus上没有的东西向IRQ#18发送中断?

  • 如何跟踪这些中断的来源?

最后

  • 如何解决此问题? :-)

我将不胜感激任何建议或指示,并很乐意提供我可能错过的任何信息。预先感谢。

0 个答案:

没有答案