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 인스턴스에서 메시지를 본 적이 있습니다.)
답변1
커널이나 장치 드라이버에는 아무런 문제가 없습니다. 문제는 컴퓨터의 하드웨어에 있습니다. 문제는 하드웨어로는 불가능하다는 것이다.
이는 최소 10년 동안 사람들을 괴롭혀온 여러 가상화 플랫폼(적어도 XEN, QEMU 및 VirtualBox 포함)의 버그입니다. 문제는 다양한 브랜드의 가상 머신이 UART 하드웨어를 제대로 에뮬레이션하지 않아 문자를 엄청나게 빠른 회선 속도로 전송한다는 것입니다. 커널에서는 이는 오류와 구별할 수 없습니다.진짜UART 하드웨어는 빈 출력 버퍼/가득찬 입력 버퍼에 대해 계속해서 인터럽트를 발생시킵니다. (그러한 결함이 있는 실제 하드웨어가 존재하며 임베디드 Linux 사람들이 여기저기서 이에 대해 이야기하는 것을 볼 수 있습니다.) 커널은 데이터를 내보내거나 가져오며 UART는 즉시 인터럽트를 발생시켜 추가 작업 준비가 되었음을 알립니다. .
H. Peter Anvin은 2008년에 QEMU를 수정하기 위한 패치를 제공했습니다. 언제 따라잡을지 Amazon EC2에 문의해야 합니다.
추가 읽기
- 앨런 콕스(2008-01-12). Re: [패치] 일련번호: "irq에 대한 작업이 너무 많습니다" printk를 제거합니다.. 리눅스 커널 메일링 리스트.
- H. 피터 언윈(2008-02-07).답변: 2.6.24 "serial8250: irq4에 대한 작업이 너무 많습니다"라는 말을 자주 합니다.. 리눅스 커널 메일링 리스트.
- 캐시 달링(2009-05-15).SMP 완전 가상화된 xen domU에서 직렬 콘솔을 볼 때 "serial8250: irq4에 대한 작업이 너무 많습니다" 메시지가 나타남. 501026. 레드햇 버그질라.
- 뤄시뱌오(2013-07-21).isa-serial과 함께 kvm을 사용할 때 게스트 커널은 "serial8250: Too much work for irq3"을 많이 인쇄합니다.. 986761. 레드햇 버그질라.
- 힌켈름(2008-12-16). Linux 게스트의 직렬 포트에서 "serial8250: irq4에 대한 작업이 너무 많습니다.". 2752. VirtualBox 오류가 발생했습니다.
- 마크 PF(2015-09-05).EC2 인스턴스가 응답하지 않게 됨. AWS 개발자 포럼.
답변2
지원할 데이터 포인트를 추가하기만 하면 됩니다.제이드 BP: 내 XEN VM에서 이것을 볼 수 있으며 dmesg를 실행할 때만 볼 수 있습니다. 내 생각엔 dmesg를 실행할 때 dmesg가 한 번에 많은 항목을 뱉어내기 때문에 가상 UART에 과부하가 걸리고 위의 오류가 표시되는 것 같습니다. 어쨌든, 그것은 나에게 문제가 되지 않습니다. 단지 붉은 청어일 뿐입니다.
답변3
serial8250: too much work for irq4
UART가 손상된 물리적 시스템이 있을 수도 있습니다 . UART를 통해 ARM 칩셋을 디버깅하고 있는데 1주일 만에 두 개의 UART 장치가 손상되었습니다. 저는 cp2102 칩을 기반으로 USB에 직렬 포트를 사용하고 있습니다.
물리적 하드웨어를 다루는 경우 TxD 및 RxD를 단락시키고 스트레스 테스트를 수행하여 직렬 장치가 작동하는지 테스트할 수 있습니다. 전송 중인 데이터가 표시되어야 합니다.