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.)
Odpowiedzi:
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
źródło
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ź.
źródło