跌倒后努力爬起,No irq handler for vector (irq -1)

        内核报错:No irq handler for vector (irq -1), 在项目中偶然遇到过几回,有几回被本身迷迷糊糊的经过网上的方法给解决了。最近一次出现给我带来惨烈痛:解决问题时把客户的服务器系统搞挂了,最终问题被客户工程师先于我解决,而后领导开始质疑个人能力。痛定思痛,特此把问题总结分析一下。shell

问题现象:在shell和messages日志中,都不断出现下面的报错:centos

Dec 25 04:19:03 localhost kernel: do_IRQ: 13.98 No irq handler for vector (irq -1)
Dec 25 04:19:05 localhost kernel: do_IRQ: 13.98 No irq handler for vector (irq -1)
Dec 25 04:19:07 localhost kernel: do_IRQ: 13.98 No irq handler for vector (irq -1)
Dec 25 04:19:09 localhost kernel: do_IRQ: 13.98 No irq handler for vector (irq -1)服务器

日志解析:cpu 13 收到了一个irq为-1,中断向量为98的中断,但没有handler。 irq居然为-1,也就是cpu 1 上的vector_irq[98]为-1。app

红帽的工程师已经肯定这是由于硬件问题, Intel 5520和5500不能正确处理中断的重定向致使,问题详细状况https://support.citrix.com/article/CTX136517日志

解决方法:ci

临时解决方法是(选择其一便可):rem

  1. 禁用Interrupt remapping:修改grub配置中的内核引导参数,增长“ intremap=off”,而后重启系统。(也有建议添加 iommu=no-intremap或者pci=nomsi,noaer) grub配置文件,centos系统在/boot/grub/grub.conf.
  2. 禁用irqbalance,对于redhat系统能够执行如下操做:
    1. chkconfig irqbalance off
    2. service irqbalance stop
  3. Redhat建议更新BIOS。在BOIS中关闭

关于问题的详细讨论,能够参考https://bugzilla.mozilla.org/show_bug.cgi?id=831054it

相关文章
相关标签/搜索