web-dev-qa-db-ja.com

「serial8250:irq4には作業量が多すぎる」というカーネルメッセージを理解する

dmesgは、serial8250からの多くのメッセージを示します。

$ dmesg | grep -i serial
[    0.884481] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
[    6.584431] systemd[1]: Created slice system-serial\x2dgetty.slice.
[633232.317222] serial8250: too much work for irq4
[633232.453355] serial8250: too much work for irq4
[633248.378343] serial8250: too much work for irq4
...

このメッセージを見たことがない。一般的にはどういう意味ですか?心配する必要がありますか?

(私の調査によると、これはディストリビューション固有ではありませんが、関連がある場合は、Ubuntu 16.04を実行しているEC2インスタンスにメッセージが表示されます。)

17
Philipp Claßen

カーネルまたはデバイスドライバーに問題はありません。問題はマシンのハードウェアにあります。問題は、それが不可能なハードウェアであるということです。

これは、少なくとも10年間人々を悩ませてきたいくつかの仮想化プラットフォーム(少なくともXEN、QEMU、VirtualBoxを含む)のエラーです。問題は、さまざまなブランドの仮想マシンによってエミュレートされたUARTハードウェアが動作せず、文字を非常に速い回線速度で送信することです。カーネルにとって、これは障害のあるrealUART空の出力バッファ/フル入力バッファの割り込みを継続的に発生させるハードウェア(このような障害のある実際のハードウェアが存在し、埋め込まれたLinuxの人々もこの問題をあちこちで議論しているのがわかります。)カーネルはデータをプッシュ/プルし、UARTは準備ができているとすぐに割り込みを発生させますもっと。

H. Peter Anvinが2008年にQEMUを修正するためのパッチを提供しました。EC2が追いつくかどうかをAmazonに尋ねる必要があります。

参考文献

21
JdeBP

JdeBP をサポートするデータポイントを追加するだけです。これはXEN VMで確認されており、dmesgを実行したときにのみ確認されています。私の推測では、dmesgを実行すると、仮想UART(および上記のバグが明らかになった)が過負荷になっています)。それは私にとっては問題ではなく、ただのニシンです。

2
pdelong