Understanding "serial8250: too much work for irq4" kernel message
There is nothing wrong with your kernel or device drivers. The problem is with your machine hardware. The problem is that it is impossible hardware.
This is an error in several virtualization platforms (including at least XEN, QEMU, and VirtualBox) that has been plaguing people for at least a decade. The problem is that the UART hardware that is emulated by various brands of virtual machine behaves impossibly, sending characters at an impossibly fast line speed. To the kernel, this is indistinguishable from faulty real UART hardware that is continually raising an interrupt for an empty output buffer/full input buffer. (Such faulty real hardwares exist, and you will find embedded Linux people also discussing this problem here and there.) The kernel pushes the data out/pulls the data in, and the UART is immediately raising an interrupt saying that it is ready for more.
H. Peter Anvin provided a patch to fix QEMU in 2008. You'll need to ask Amazon when EC2 is going to catch up.
Further reading
- Alan Cox (2008-01-12). Re: [PATCH] serial: remove "too much work for irq" printk. Linux Kernel Mailing List.
- H. Peter Anvin (2008-02-07). Re: 2.6.24 says "serial8250: too much work for irq4" a lot.. Linux Kernel Mailing List.
- Casey Dahlin (2009-05-15). 'serial8250: too much work for irq4' message when viewing serial console on SMP full-virtualized xen domU. 501026. Red Hat Bugzilla.
- Sibiao Luo (2013-07-21). guest kernel will print many "serial8250: too much work for irq3" when using kvm with isa-serial. 986761. Red Hat Bugzilla.
- schinkelm (2008-12-16). serial port in linux guest gives "serial8250: too much work for irq4". 2752. VirtualBox bugs.
- Marc PF (2015-09-05). EC2 instance becomes unresponsive. AWS Developer Forums.
Just to add a data-point in support of JdeBP: I've been seeing this in my XEN VMs, and I've only been seeing it when I run dmesg. My guess is that when I run dmesg, I'm overloading the virtual UART (and manifesting the bug described above), because dmesg is spewing a whole bunch of stuff at once. In any case, it's a non-problem for me, just a red herring.