Entendendo a mensagem do kernel “serial8250: too work for irq4”

6

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 esta mensagem antes. O que isso geralmente significa? Eu deveria estar preocupado?

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

    
por Philipp Claßen 22.08.2017 / 10:45

2 respostas

11

Não há nada errado com 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 tem atormentado as pessoas por pelo menos uma década. O problema é que o hardware UART que é emulado por várias marcas de máquinas virtuais se comporta de maneira impossível, enviando caracteres a uma velocidade de linha incrivelmente rápida. Para o kernel, isto é indistinguível do hardware UART defeituoso real que está continuamente levantando uma interrupção para um buffer de saída / buffer de entrada total vazio. (Esses hardwares reais defeituosos existem, e você encontrará pessoas Linux embarcadas que também discutem esse problema aqui e ali.) O kernel envia os dados para fora / puxa os dados, e a UART imediatamente levanta uma interrupção dizendo que está pronta para mais .

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

Leitura adicional

por 22.08.2017 / 14:18
0

Apenas para adicionar um ponto de dados em apoio de JdeBP : Eu tenho visto isso no meu XEN VMs, e eu só tenho visto quando eu executo o dmesg. Meu palpite é que quando executo o dmesg, estou sobrecarregando a UART virtual (e manifestando o bug descrito acima), porque o dmesg está lançando um monte de coisas de uma só vez. Em qualquer caso, não é um problema para mim, apenas um arenque vermelho.

    
por 10.08.2018 / 17:49

Tags