跌倒後努力爬起,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

相關文章
相關標籤/搜索