Entender el mensaje del núcleo "serial8250: demasiado trabajo para irq4"

17

dmesg muestra muchos mensajes de 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
...

No he visto este mensaje antes. ¿Qué significa generalmente? ¿Deberia estar preocupado?

(Según mi investigación, no es específica de la distribución, pero en caso de que sea relevante, veo los mensajes en una instancia EC2 que ejecuta Ubuntu 16.04).

Philipp Claßen
fuente
¿Por qué una instancia EC2 necesita un controlador en serie? ¿Qué está conectado a esos "puertos" seriales? (Supongo: algo más está causando muchas señales irq4, y el controlador se confunde. Solución: deshabilite el controlador, ya que probablemente no sea necesario).
dirkt
¿Tal vez eso pueda suceder si inicia sesión a través de SSH e interactúa con la consola?
Philipp Claßen
2
El puerto serie en una instancia EC2 es la "salida de consola" EC2, dirkt.
JdeBP

Respuestas:

19

No hay nada malo con su kernel o controladores de dispositivo. El problema es con el hardware de su máquina. El problema es que es un hardware imposible.

Este es un error en varias plataformas de virtualización (incluyendo al menos XEN, QEMU y VirtualBox) que ha afectado a las personas durante al menos una década. El problema es que el hardware UART que es emulado por varias marcas de máquinas virtuales se comporta de manera imposible, enviando caracteres a una velocidad de línea increíblemente rápida. Para el núcleo, esto no se puede distinguir del hardware UART real defectuoso que continuamente genera una interrupción para un búfer de salida vacío / búfer de entrada completo. (Existen tales hardwares reales defectuosos, y encontrará personas Linux integradas que también están discutiendo este problema aquí y allá). El kernel empuja los datos hacia afuera / los saca, y el UART está generando una interrupción de inmediato diciendo que está listo para más .

H. Peter Anvin proporcionó un parche para reparar QEMU en 2008. Tendrá que preguntarle a Amazon cuándo EC2 se pondrá al día.

Otras lecturas

JdeBP
fuente
1
¿Salió un parche en 2008? y "Deberá preguntarle a Amazon cuándo EC2 se pondrá al día". Recibo este error en Azure en un servidor Ubuntu en Azure (18 / julio) Linux 4.15.0-1013-azure x86_64.
KevinY
2

Solo para agregar un punto de datos en apoyo de JdeBP : he estado viendo esto en mis máquinas virtuales XEN, y solo lo he visto cuando ejecuto dmesg. Mi suposición es que cuando ejecuto dmesg, estoy sobrecargando el UART virtual (y manifestando el error descrito anteriormente), porque dmesg está arrojando un montón de cosas a la vez. En cualquier caso, no es un problema para mí, solo un arenque rojo.

pdelong
fuente
Puedo informar una tercera configuración del sistema operativo: Debian Stretch Docker container en docker para Mac 18.06.1-ce-mac73 (26764) en Mac Os High Sierra 10.13.6. una aplicación python) deja de responder de vez en cuando ...
Henning