it-swarm.com.de

Grundlegendes zur Kernel-Nachricht "serial8250: zu viel Arbeit für irq4"

dmesg zeigt viele Nachrichten von 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
...

Ich habe diese Nachricht noch nicht gesehen. Was bedeutet das im Allgemeinen? Sollte ich besorgt sein?

(Nach meinen Recherchen ist es nicht verteilungsspezifisch, aber falls es relevant ist, sehe ich die Meldungen auf einer EC2-Instanz, auf der Ubuntu 16.04 ausgeführt wird.)

17
Philipp Claßen

Es ist nichts falsch mit Ihrem Kernel oder Gerätetreibern. Das Problem liegt in Ihrer Maschinenhardware. Das Problem ist, dass es unmöglich ist, Hardware.

Dies ist ein Fehler in mehreren Virtualisierungsplattformen (einschließlich mindestens XEN, QEMU und VirtualBox), der Menschen seit mindestens einem Jahrzehnt plagt. Das Problem ist, dass sich die UART Hardware, die von verschiedenen Marken virtueller Maschinen emuliert wird, unmöglich verhält und Zeichen mit einer unglaublich hohen Zeilengeschwindigkeit sendet. Für den Kernel ist dies nicht von fehlerhaften real UART Hardware, die kontinuierlich einen Interrupt für einen leeren Ausgabepuffer/vollen Eingabepuffer auslöst. (Solche fehlerhaften realen Hardwares existieren, und Sie werden hier und da auch eingebettete Linux-Leute finden, die dieses Problem diskutieren.) Der Kernel drückt die Daten heraus/zieht die Daten hinein, und der UART löst sofort einen Interrupt aus, der angibt, dass er bereit ist Mehr.

H. Peter Anvin hat 2008 einen Patch zur Behebung von QEMU bereitgestellt. Sie müssen Amazon fragen, wann EC2 aufholen wird.

Weiterführende Literatur

21
JdeBP

Nur um einen Datenpunkt zur Unterstützung von JdeBP hinzuzufügen: Ich habe dies in meinen XEN-VMs gesehen, und ich habe es nur gesehen, wenn ich dmesg ausgeführt habe. Ich vermute, wenn ich dmesg ausführe, überlade ich das virtuelle UART (und manifestiere den oben beschriebenen Fehler), weil dmesg eine ganze Reihe von Dingen auf einmal ausspuckt. Auf jeden Fall Für mich ist das kein Problem, nur ein roter Hering.

2
pdelong