Comprensione del messaggio del kernel "serial8250: troppo lavoro per irq4"


17

dmesg mostra molti messaggi da 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
...

Non ho visto questo messaggio prima. Cosa significa generalmente? Dovrei essere preoccupato?

(Dalla mia ricerca, non è specifico per la distribuzione, ma nel caso sia rilevante, vedo i messaggi su un'istanza EC2 che esegue Ubuntu 16.04.)


Perché un'istanza EC2 necessita di un driver seriale? Cosa è collegato a quelle "porte" seriali? (Indovina: qualcos'altro sta causando molti segnali irq4 e il driver viene confuso. Soluzione: disabilita il driver, poiché probabilmente non è necessario).
Dirkt

Forse ciò può accadere se accedi tramite SSH e interagisci con la console?
Philipp Claßen,

2
La porta seriale in un'istanza EC2 è "console output" EC2, dirkt.
JdeBP,

Risposte:


19

Non c'è niente di sbagliato nel kernel o nei driver di dispositivo. Il problema è con l'hardware della macchina. Il problema è che è hardware impossibile.

Questo è un errore in diverse piattaforme di virtualizzazione (tra cui almeno XEN, QEMU e VirtualBox) che affligge le persone da almeno un decennio. Il problema è che l'hardware UART emulato da varie marche di macchine virtuali si comporta in modo impossibile, inviando i personaggi a una velocità di linea incredibilmente alta. Per il kernel, ciò non è distinguibile dall'hardware UART reale difettoso che genera continuamente un interrupt per un buffer di output vuoto / buffer di input completo. (Esistono hardware reali così difettosi e troverete persone Linux incorporate che discutono anche questo problema qua e là.) Il kernel espelle i dati / estrae i dati e l'UART sta immediatamente generando un interrupt dicendo che è pronto per ulteriori .

H. Peter Anvin ha fornito una patch per correggere QEMU nel 2008. Dovrai chiedere ad Amazon quando EC2 sta per recuperare.

Ulteriori letture


1
Una patch è uscita nel 2008? e "Avrai bisogno di chiedere ad Amazon quando EC2 sta per recuperare" .. Ricevo questo errore su Azure su un server Ubuntu in Azure (18 luglio) Linux 4.15.0-1013-azure x86_64.
KevinY,

2

Solo per aggiungere un punto dati a supporto di JdeBP : lo vedo nelle mie macchine virtuali XEN e lo vedo solo quando eseguo dmesg. La mia ipotesi è che quando eseguo dmesg, sto sovraccaricando l'UART virtuale (e manifestando il bug descritto sopra), perché dmesg sta vomitando un sacco di cose contemporaneamente. In ogni caso, non è un problema per me, solo un'aringa rossa.


Posso segnalare una terza configurazione del sistema operativo: contenitore Debian Stretch Docker in docker per Mac 18.06.1-ce-mac73 (26764) su Mac Os High Sierra 10.13.6 In questo post analizzo il motivo per cui il contenitore (che utilizzo per lo sviluppo di un'app Python) non risponde di tanto in tanto ...
Henning,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.