Понимание сообщения «serial8250: слишком много работы для irq4»

17

dmesg показывает много сообщений от 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
...

Я не видел это сообщение раньше. Что это вообще значит? Я должен беспокоиться?

(По моим исследованиям, это не является специфичным для дистрибутива, но в случае, если это уместно, я вижу сообщения на экземпляре EC2 под управлением Ubuntu 16.04.)

Филипп Классен
источник
Зачем экземпляру EC2 нужен последовательный драйвер? Что связано с этими последовательными "портами"? (Угадайте: что-то еще вызывает много сигналов irq4, и драйвер запутывается. Решение: отключите драйвер, так как он, вероятно, не нужен).
Диркт
Может быть, это произойдет, если вы войдете через SSH и будете взаимодействовать с консолью?
Филипп Классен
2
Последовательный порт в экземпляре EC2 является «консольным выходом» EC2, dirkt.
JdeBP

Ответы:

19

Нет ничего плохого в вашем ядре или драйверах устройств. Проблема в оборудовании вашей машины. Проблема в том, что это невозможно аппаратно.

Это ошибка в нескольких платформах виртуализации (включая, по крайней мере, XEN, QEMU и VirtualBox), которые мучают людей как минимум десять лет. Проблема в том, что оборудование UART, которое эмулируется виртуальными машинами разных марок, ведет себя невероятно, отправляя символы с невероятно высокой скоростью линии. Для ядра это неотличимо от неисправного реального оборудования UART, которое постоянно вызывает прерывание для пустого выходного буфера / полного входного буфера. (Такое неисправное реальное аппаратное обеспечение существует, и вы найдете людей, использующих встроенный Linux, также обсуждающих эту проблему здесь и там.) Ядро выталкивает данные / извлекает данные, и UART немедленно вызывает прерывание, говоря, что оно готово к большему количеству ,

H. Питер Анвин предоставил исправление для исправления QEMU в 2008 году. Вам нужно будет спросить Amazon, когда EC2 собирается наверстать упущенное.

дальнейшее чтение

JdeBP
источник
1
Патч вышел в 2008 году? и «Вам нужно будет спросить Amazon, когда EC2 собирается наверстать упущенное». Я получаю эту ошибку в Azure на сервере Ubuntu в Azure (18 июля), Linux 4.15.0-1013-azure x86_64.
KevinY
2

Просто чтобы добавить точку данных в поддержку JdeBP : я видел это на своих виртуальных машинах XEN, и я видел это только при запуске dmesg. Я предполагаю, что когда я запускаю dmesg, я перегружаю виртуальный UART (и обнаруживаю ошибку, описанную выше), потому что dmesg извергает сразу целую кучу вещей. В любом случае, для меня это не проблема, просто красная сельдь.

pdelong
источник
Я могу сообщить о третьей настройке ОС: контейнер Debian Stretch Docker в докере для Mac 18.06.1-ce-mac73 (26764) на Mac Os High Sierra 10.13.6 Перебирая этот пост, анализируя, почему контейнер (который я использую для разработки приложение Python) время от времени перестает отвечать
Хеннинг