Kernel

了解“serial8250:irq4 工作量太大”核心消息

  • December 17, 2020

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
...

我以前沒有看過這條消息。一般是什麼意思?我應該擔心嗎?

(根據我的研究,它不是特定於發行版的,但如果它是相關的,我會在執行 Ubuntu 16.04 的 EC2 實例上看到消息。)

您的核心或設備驅動程序沒有任何問題。問題出在您的機器硬體上。問題是它是不可能的硬體。

這是困擾人們至少十年的幾個虛擬化平台(至少包括 XEN、QEMU 和 VirtualBox)中的一個錯誤。問題是各種品牌的虛擬機模擬的 UART 硬體表現得不可能,以不可能的快線速度發送字元。對於核心來說,這與有故障的真實UART 硬體無法區分,後者不斷地為空的輸出緩衝區/完整的輸入緩衝區引發中斷。(這種有缺陷的真實硬體是存在的,你會發現嵌入式 Linux 的人也在這里和那裡討論這個問題。)核心推送數據/拉入數據,UART 立即發出中斷,表示它已準備好進行更多操作.

H. Peter Anvin 在 2008 年提供了一個修復 QEMU 的更新檔。您需要詢問 Amazon EC2 何時能趕上。

進一步閱讀

引用自:https://unix.stackexchange.com/questions/387600