FreeBSD 9.3: “kernel: stray irq7” がログに記録されている

設置待ちの FreeBSD 9.3 サーバーですが、負荷を掛けての放置プレイは重要ですね。次々と、初見(それとも発生がレアなので記憶から消えている?)の症状を発生してくれます。

今回は、”stray irq7″ というメッセージがコンソールやら、/var/log/messages に記録されています。

Aug  3 21:57:48 pc32 kernel: Aug  3 21:57:48 pc32 kernel: stray irq7
Aug  3 22:01:11 pc32 kernel: Aug  3 22:01:11 pc32 kernel: stray irq7
Aug  3 22:01:49 pc32 kernel: Aug  3 22:01:11 pc32 kernel: stray irq7
Aug  3 22:41:29 pc32 kernel: Aug  3 22:41:29 pc32 kernel: stray irq7
Aug  3 22:41:30 pc32 kernel: Aug  3 22:41:30 pc32 kernel: too many stray irq 7's: not logging anymore
Aug  4 00:57:25 pc32 kernel: Aug  4 00:57:25 pc32 kernel: stray irq7
Aug  4 00:57:30 pc32 kernel: Aug  4 00:57:30 pc32 kernel: too many stray irq 7's: not logging anymore
Aug  7 03:27:21 pc32 kernel: Aug  7 03:27:21 pc32 kernel: stray irq7
Aug  8 15:01:58 pc32 kernel: Aug  8 15:01:58 pc32 kernel: stray irq7
Aug 10 20:42:49 pc32 kernel: Aug 10 20:42:49 pc32 kernel: stray irq7
Aug 13 03:04:13 pc32 kernel: Aug 13 03:04:13 pc32 kernel: stray irq7
Aug 13 03:05:11 pc32 kernel: Aug 13 03:04:13 pc32 kernel: stray irq7
Aug 13 03:16:02 pc32 kernel: Aug 13 03:16:02 pc32 kernel: stray irq7
Aug 14 06:03:42 pc32 kernel: Aug 14 06:03:42 pc32 kernel: stray irq7
Aug 15 03:03:41 pc32 kernel: Aug 15 03:03:41 pc32 kernel: stray irq7
Aug 15 03:04:37 pc32 kernel: Aug 15 03:03:41 pc32 kernel: stray irq7

stray なので、処理されない割り込みが発生しているとか、受け付けられない・拾って貰えない割り込みということになるんでしょうか。

現代のハードウェアの場合はどうなのか確認していませんが、今回使ってたマザーボードは IRQは 0-15 の時代のマザーボードなので、IRQ7 はプリンターが使います。しかし、サーバー用途構築なので、シリアルポート、パラレルポート、FDCなど使わない機能はマザーボード上の設定で DISABLE に設定しています。今回の IRQ7 も本来なら、IRQなんか発生するはずはないのですが、vmstat -i コマンドで確認してみると以下のように2発発生していて、2発とも stray になっていると記録されています。

# vmstat -i
interrupt                          total       rate
irq0: attimer0                  94448508       1998
irq1: atkbd0                           6          0
irq5: atapci1                     702054         14
irq7:                                  2          0
stray irq7                             2          0
irq10: rl0                        587018         12
Total                           95737590       2025

この「vmstat -i」、検索して知ったのですが、FreeBSD 9 の場合は、IRQ とドライバーの対応が表示されて、irq7 にはパートナードライバーがないことがわかります。

これくらいの発生頻度なら放置でも良さそうですけど、ログの中には、「kernel: too many stray irq 7’s: not logging anymore」と記録されているところもあり、ログインする時に影響が発生する可能性もあるようです。今まで影響はなかったんですけどね。

他のサーバーを確認してみると、プリンターポートは空きのはずなんですが、IRQ7 が発生していると記録されています。

> vmstat -i
interrupt                          total       rate
irq0: clk                      582265541         63
irq1: atkbd0                           8          0
irq3: xl0                       75032156          8
irq6: fdc0                             7          0
irq7: ppc0                             1          0
irq8: rtc                     1173900519        128
irq14: ata0                     54699366          5
irq15: ata1                           34          0
Total                         1885897632        205
# vmstat -i
interrupt                          total       rate
irq0: attimer0                3069897106        833
irq6: fdc0                            10          0
irq7: ppc0                             1          0
irq9: dc0 uhci1+                 9421126          2
irq12: rl0                         46016          0
irq14: ata0                      7375245          2
Total                         3086739504        837

どちらも数が1なので、起動時のIOスキャンでもしているのかな〜という印象ですが、プリンターポートは使っていなくても割り込みは発生するようです。プリンターポートをLANのデバイスとして使う事も出来るんで、そうなっているのかもしれません。

IRQ7 に対応するドライバーがあればいいんじゃないの?という安易な(?)対策で、一度シャットダウンし、BIOSの Integrated peripherals の設定で、プリンターをバリバリ使う設定に変更してみました。OS 起動時に、確かにirq7として ppc0 が認識されました。

kernel: ppc0: <Parallel port> port 0x378-0x37f,0x778-0x77b irq 7 drq 3 on acpi0

その後で、vmstat -i を取ってみたところ、irq7 が1発発生しているようですが、stray irq とは認識されておらず、ログにも記録されていません。

# vmstat -i
interrupt                          total       rate
irq0: attimer0                   3716799       1998
irq1: atkbd0                           6          0
irq5: atapci1                      11522          6
irq7: ppc0                             1          0
irq10: rl0                          2933          1
Total                            3731261       2006

これで対策になったんじゃないかと思いますが、使いもしないIOがリソースを食っているかと思うと、ちょっと不満。

コメントを残す