추가 읽기

추가 읽기

dmesgserial8250의 많은 메시지 표시:

$ 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에 문의해야 합니다.

추가 읽기

답변2

지원할 데이터 포인트를 추가하기만 하면 됩니다.제이드 BP: 내 XEN VM에서 이것을 볼 수 있으며 dmesg를 실행할 때만 볼 수 있습니다. 내 생각엔 dmesg를 실행할 때 dmesg가 한 번에 많은 항목을 뱉어내기 때문에 가상 UART에 과부하가 걸리고 위의 오류가 표시되는 것 같습니다. 어쨌든, 그것은 나에게 문제가 되지 않습니다. 단지 붉은 청어일 뿐입니다.

답변3

serial8250: too much work for irq4UART가 손상된 물리적 시스템이 있을 수도 있습니다 . UART를 통해 ARM 칩셋을 디버깅하고 있는데 1주일 만에 두 개의 UART 장치가 손상되었습니다. 저는 cp2102 칩을 기반으로 USB에 직렬 포트를 사용하고 있습니다.

물리적 하드웨어를 다루는 경우 TxD 및 RxD를 단락시키고 스트레스 테스트를 수행하여 직렬 장치가 작동하는지 테스트할 수 있습니다. 전송 중인 데이터가 표시되어야 합니다.

관련 정보