Entendendo a mensagem do kernel “serial8250: muito trabalho para o irq4”

16

dmesg mostra muitas mensagens 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
...

Eu não vi essa mensagem antes. O que isso geralmente significa? Eu deveria estar preocupado?

(De minha pesquisa, não é específico da distribuição, mas, caso seja relevante, vejo as mensagens em uma instância do EC2 executando o Ubuntu 16.04.)

Philipp Claßen
fonte
Por que uma instância do EC2 precisa de um driver serial? O que está conectado a essas "portas" seriais? (Adivinhe: outra coisa está causando muitos sinais irq4 e o driver fica confuso. Solução: desative o driver, pois provavelmente não é necessário).
dirkt 22/08/17
Talvez isso possa acontecer se você fizer login via SSH e interagir com o console?
Philipp Claßen
2
A porta serial em uma instância do EC2 é a "saída do console" do EC2, dirkt.
JdeBP 22/08/19

Respostas:

19

Não há nada de errado com o seu kernel ou drivers de dispositivo. O problema está no hardware da sua máquina. O problema é que é um hardware impossível.

Este é um erro em várias plataformas de virtualização (incluindo pelo menos XEN, QEMU e VirtualBox) que atormentam as pessoas há pelo menos uma década. O problema é que o hardware UART que é emulado por várias marcas de máquinas virtuais se comporta impossivelmente, enviando caracteres a uma velocidade incrivelmente rápida da linha. Para o kernel, isso é indistinguível do hardware UART real com defeito, que está continuamente aumentando uma interrupção para um buffer de saída vazio / buffer de entrada completo. (Existem tais hardwares defeituosos e você encontrará pessoas Linux embarcadas discutindo esse problema aqui e ali.) O kernel empurra os dados para fora / puxa os dados e o UART imediatamente levanta uma interrupção dizendo que está pronto para mais .

H. Peter Anvin forneceu um patch para corrigir o QEMU em 2008. Você precisará perguntar à Amazon quando o EC2 vai recuperar o atraso.

Leitura adicional

JdeBP
fonte
1
Um patch saiu em 2008? e "Você precisará perguntar à Amazon quando o EC2 atualizará". Estou recebendo esse erro no Azure em um servidor Ubuntu no Azure (julho / 18) Linux 4.15.0-1013-azure x86_64.
21718 Kevin
2

Apenas para adicionar um ponto de dados no suporte ao JdeBP : tenho visto isso nas minhas VMs XEN e só o vi quando executo o dmesg. Meu palpite é que, quando executo o dmesg, estou sobrecarregando o UART virtual (e manifestando o bug descrito acima), porque o dmesg está vomitando um monte de coisas ao mesmo tempo. De qualquer forma, é um problema para mim, apenas um arenque vermelho.

pdelong
fonte
Posso relatar uma terceira configuração do sistema operacional: o contêiner Debian Stretch Docker no docker para Mac 18.06.1-ce-mac73 (26764) no Mac Os High Sierra 10.13.6 um aplicativo de python) fica sem resposta de vez em quando ...
Henning