Zrozumienie komunikatu „serial8250: zbyt dużo pracy dla jądra IRQ4”

17

dmesg pokazuje wiele wiadomości z 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
...

Nie widziałem wcześniej tej wiadomości. Co to ogólnie oznacza? Powinienem być zaniepokojony?

(Z moich badań wynika, że ​​nie jest on specyficzny dla dystrybucji, ale w razie potrzeby widzę komunikaty w instancji EC2 z systemem Ubuntu 16.04.)

Philipp Claßen
źródło
Dlaczego instancja EC2 potrzebuje sterownika szeregowego? Co jest podłączone do tych „portów” szeregowych? (Zgadnij: coś innego powoduje wiele sygnałów IRQ4 i sterownik się myli. Rozwiązanie: wyłącz sterownik, ponieważ prawdopodobnie nie jest potrzebny).
bezpośrednio
Może to się zdarzy, jeśli zalogujesz się przez SSH i wejdziesz w interakcję z konsolą?
Philipp Claßen,
2
Port szeregowy w instancji EC2 to „wyjście konsoli” EC2, dirkt.
JdeBP

Odpowiedzi:

20

Nie ma nic złego w jądrze lub sterownikach urządzeń. Problem dotyczy sprzętu maszyny. Problem polega na tym, że sprzęt jest niemożliwy.

Jest to błąd występujący na kilku platformach wirtualizacji (w tym przynajmniej XEN, QEMU i VirtualBox), który nęka ludzi od co najmniej dekady. Problem polega na tym, że sprzęt UART emulowany przez maszyny wirtualne różnych marek zachowuje się niemożliwie, wysyłając znaki z niewiarygodnie dużą prędkością linii. Dla jądra jest to nie do odróżnienia od wadliwego rzeczywistego sprzętu UART, który stale podnosi przerwanie dla pustego bufora wyjściowego / pełnego bufora wejściowego. (Istnieją tak naprawdę wadliwe prawdziwe programy sprzętowe, a tu i tam dyskutują o tym osadzeni ludzie Linuksa.) Jądro wypycha dane / pobiera je, a UART natychmiast podnosi przerwanie, mówiąc, że jest gotowy na więcej .

H. Peter Anvin dostarczył łatkę do naprawy QEMU w 2008 roku. Będziesz musiał zapytać Amazon, kiedy EC2 ma nadrobić zaległości.

Dalsza lektura

JdeBP
źródło
1
Łatka pojawiła się w 2008 roku? i „Musisz zapytać Amazon, kiedy EC2 ma nadrobić zaległości”. Ten błąd pojawia się na platformie Azure na serwerze Ubuntu na platformie Azure (18 lipca) Linux 4.15.0-1013-azure x86_64.
KevinY,
2

Aby dodać punkt danych wspierający JdeBP : Widziałem to na moich maszynach wirtualnych XEN i widziałem to dopiero po uruchomieniu dmesg. Domyślam się, że kiedy uruchamiam dmesg, przeciążam wirtualny UART (i manifestuję opisany wyżej błąd), ponieważ dmesg wyrzuca całą masę rzeczy naraz. W każdym razie to dla mnie żaden problem, tylko czerwony śledź.

pdelong
źródło
Mogę zgłosić trzecią konfigurację systemu operacyjnego: kontener Debian Stretch Docker w oknie dokowanym dla komputerów Mac 18.06.1-ce-mac73 (26764) na komputerach Mac OS High Sierra 10.13.6. W tym artykule analizuję, dlaczego kontener (którego używam do opracowania aplikacja python) od czasu do czasu przestaje reagować ...
Henning,