Розуміння "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, і драйвер заплутався. Рішення: вимкнути драйвер, оскільки це, мабуть, не потрібно).
dirkt

Можливо, це може статися, якщо увійти через SSH та взаємодіяти з консоллю?
Philipp Claßen

2
Послідовним портом в екземплярі EC2 є консольний вихід EC2, dirkt.
JdeBP

Відповіді:


20

З вашими ядрами або драйверами пристрою немає нічого поганого. Проблема полягає в апаратному забезпеченні машини. Проблема в тому, що апаратне забезпечення неможливе.

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

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

Подальше читання


1
Патч вийшов у 2008 році? і "Вам потрібно буде запитати Amazon, коли EC2 наздожене". Я отримую цю помилку в Azure на сервері Ubuntu в Azure (липень / 18) Linux 4.15.0-1013-azure x86_64.
КевінY

2

Просто додати точку даних на підтримку JdeBP : я бачив це у своїх VEN-файлах XEN, і бачив це лише коли запускаю dmesg. Я здогадуюсь, що коли я запускаю dmesg, я перевантажую віртуальний UART (і виявляю помилку, описану вище), тому що dmesg збирає відразу цілу купу речей. У будь-якому випадку для мене це не проблема, просто червона оселедець.


Я можу повідомити про третю настройку ОС: контейнер Debian Stretch Docker в docker для Mac 18.06.1-ce-mac73 (26764) на Mac Os High Sierra 10.13.6 Переходжу через цю посаду, аналізуючи, чому саме контейнер (який я використовую для розробки додаток пітон) час від часу стає невідповідним ...
Геннінг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.