การทำความเข้าใจ“ 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 จึงต้องการไดรเวอร์อนุกรม สิ่งที่เชื่อมต่อกับ "พอร์ต" อนุกรมเหล่านั้น (Guess: มีสิ่งอื่นที่ทำให้เกิดสัญญาณ irq4 จำนวนมากและผู้ขับขี่สับสนวิธีแก้ปัญหา: ปิดการใช้งานไดรเวอร์เนื่องจากอาจไม่จำเป็น)
dirkt

อาจเป็นเช่นนั้นหากคุณลงชื่อเข้าใช้ผ่าน SSH และโต้ตอบกับคอนโซล
Philipp Claßen

2
พอร์ตอนุกรมในอินสแตนซ์ EC2 คือ EC2 "คอนโซลเอาต์พุต", dirkt
JdeBP

คำตอบ:


20

ไม่มีอะไรผิดปกติกับเคอร์เนลหรือไดรเวอร์อุปกรณ์ของคุณ ปัญหาเกิดขึ้นกับฮาร์ดแวร์เครื่องของคุณ ปัญหาคือว่ามันเป็นฮาร์ดแวร์ที่เป็นไปไม่ได้

นี่เป็นข้อผิดพลาดในหลายแพลตฟอร์มการจำลองเสมือน (รวมถึงอย่างน้อย XEN, QEMU และ VirtualBox) ที่ได้รับการรบกวนผู้คนอย่างน้อยหนึ่งทศวรรษ ปัญหาคือฮาร์ดแวร์ UART ที่จำลองโดยเครื่องเสมือนยี่ห้อต่าง ๆ นั้นทำงานอย่างเป็นไปไม่ได้ส่งตัวอักษรที่ความเร็วของสายที่รวดเร็วอย่างไม่น่าเชื่อ สำหรับเคอร์เนลสิ่งนี้แยกไม่ออกจากฮาร์ดแวร์ UART จริงที่มีข้อผิดพลาดซึ่งกำลังเพิ่มการอินเตอร์รัปต์สำหรับบัฟเฟอร์เอาต์พุตว่าง / บัฟเฟอร์อินพุตแบบเต็มอย่างต่อเนื่อง (เช่นฮาร์ดไดรฟ์ตัวจริงที่มีข้อผิดพลาดอยู่และคุณจะพบว่าคน Linux ที่ฝังตัวยังพูดถึงปัญหานี้ที่นี่และที่นั่น) เคอร์เนลจะดึงข้อมูลออก / ดึงข้อมูลเข้ามาและ UART จะเพิ่มการขัดจังหวะโดยทันที .

H. Peter Anvin จัดหาแพทช์เพื่อแก้ไข QEMU ในปี 2008 คุณจะต้องถาม Amazon เมื่อ EC2 กำลังจะตามทัน

อ่านเพิ่มเติม


1
มีโปรแกรมแก้ไขออกมาในปี 2008 หรือไม่? และ "คุณต้องถาม Amazon เมื่อ EC2 กำลังจะทัน" .. ฉันได้รับข้อผิดพลาดนี้ใน Azure บนเซิร์ฟเวอร์ Ubuntu ใน Azure (กรกฎาคม / 18) Linux 4.15.0-1013-azure x86_64
KevinY

2

เพียงเพิ่มจุดข้อมูลที่สนับสนุนJdeBP : ฉันเคยเห็นสิ่งนี้ใน XEN VM ของฉันและฉันเห็นมันเมื่อฉันเรียกใช้ dmesg เท่านั้น ฉันเดาว่าเมื่อฉันเรียกใช้ dmesg ฉันกำลังโหลด UART เสมือนจริงมากเกินไป (และแสดงข้อผิดพลาดที่อธิบายไว้ด้านบน) เนื่องจาก dmesg พ่นข้อมูลทั้งหมดในครั้งเดียว ไม่ว่าในกรณีใดมันไม่ใช่ปัญหาสำหรับฉัน แต่เป็นปลาเฮอริ่งแดง


ฉันสามารถรายงานการตั้งค่าระบบปฏิบัติการที่สาม: คอนเทนเนอร์ Debian Stretch Docker ใน docker สำหรับ Mac 18.06.1-ce-mac73 (26764) บน Mac Os High Sierra 10.13.6 เจอโพสต์นี้ในขณะที่วิเคราะห์ว่าทำไมคอนเทนเนอร์ (ที่ฉันใช้สำหรับการพัฒนา แอปหลาม) ได้รับการตอบสนองจากเวลา ...
เฮนนิ่ง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.