Kernel
了解“serial8250:irq4 工作量太大”核心消息
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 何時能趕上。
進一步閱讀
- 艾倫考克斯(2008-01-12)。 關於:$$ PATCH $$串列:刪除“irq 工作量太大” printk。Linux 核心郵件列表。
- H.彼得安文 (2008-02-07)。回复:2.6.24 說了很多“serial8250:irq4 工作量太大”。. Linux 核心郵件列表。
- 凱西·達林 (2009-05-15)。在 SMP 全虛擬化 xen domU 上查看串列控制台時出現“serial8250:irq4 工作量太大”消息。501026. 紅帽 Bugzilla。
- 羅思標(2013-07-21)。將 kvm 與 isa-serial 一起使用時,來賓核心將列印許多“serial8250: too much work for irq3”。986761. 紅帽 Bugzilla。
- 辛克爾姆 (2008-12-16)。 linux guest 中的串口給出了 “serial8250: too much work for irq4”。2752. VirtualBox 錯誤。
- 馬克·PF (2015-09-05)。EC2 實例變得無響應。AWS 開發人員論壇。