PCIe中断问题
PCI Express卡,软硬件都我们自己做,通过MSI产生中断,总是出问题:
Message from syslogd@localhost at Feb 6 12:20:55 ... kernel: Disabling IRQ #20 |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
PCI Express卡,软硬件都我们自己做,通过MSI产生中断,总是出问题:
Message from syslogd@localhost at Feb 6 12:20:55 ... kernel: Disabling IRQ #20 |
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
用MSI,中断还需要共享吗?中断号好多了啊。
用了MSI中断号就多了吗?能处理的中断和CPU及中断控制器有关,MSI只是一种触发机制,最终还是要映射到标准的中断处理上的。反正我在HP的工作站上挂了中断处理不会被执行(当时板子上还没有设置发送MSI),而放到PCI上一挂上很快就被调用到,应该是有共享同一个中断号的中断吧。
中断申请函数正常返回了吗?
产生了中断,却没有找到isr
如果你在内核配置时配置了使能MSI中断,那么诸如网口芯片(诸如82571等)的驱动就会使用MSI中断,你可以用:
cat /proc/interrupts 看看中断号
MSI是直接往某段内存写某个特定的值来引发相关的中断的吧。沿着enable_msi函数看下去,好像是这样的,具体的记不清楚了。
这个应该只是结果,不是原因吧。前面两行是我自己打印的,第三行是系统打印的。但这个打印在我用irq_request挂了中断处理之后才有的,如果没加中断处理反而是没有的。
由于我挂的中断函数现在得不到任何执行了,我怀疑和硬件有关系,因为只是发一个中断报文时是好的,后来修改读清之后再也没正常过,但目前不知道从哪个方向去找。