| Summary: | [intel-corei7-64][MinnowMax] serial8250: too much work for irq4 messages | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] BSPs | Reporter: | Darren Hart <dvhart> |
| Component: | bsps-meta-intel | Assignee: | California Sullivan <california.l.sullivan> |
| Status: | RESOLVED MOVED | QA Contact: | |
| Severity: | normal | ||
| Priority: | Medium | CC: | tom.zanussi, warthog9 |
| Version: | unspecified | ||
| Target Milestone: | Future | ||
| Hardware: | MinnowBoard Max | ||
| OS: | Multiple | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |
|
Description
Darren Hart
2014-05-07 21:42:48 UTC
I haven't seen this reproduce in a while. Leaving open, but will close if I can't reproduce after some weeks. :q![ 985.674141] serial8250: too much work for irq4 [ 985.680486] serial8250: too much work for irq4 [ 985.686796] serial8250: too much work for irq4 [ 985.693100] serial8250: too much work for irq4 [ 985.699404] serial8250: too much work for irq4 [ 985.705707] serial8250: too much work for irq4 [ 985.712010] serial8250: too much work for irq4 [ 985.718313] serial8250: too much work for irq4 [ 985.724616] serial8250: too much work for irq4 [ 985.730918] serial8250: too much work for irq4 Seen on July 18th, was editing some files before it wandered off and died. I'm guessing it's just a driver bug, but the serial console goes dead after this. The "Too much work for IRQ messages" occur because of erroneous Character Timeout interrupts. The UART's Interrupt Identification Register is cleared on a receive buffer read. The UART would sometimes display a Character Timeout interrupt in the Interrupt Identification Register without any data being present in the FIFO, so the Data Ready bit would not be set. The kernel tries to service the interrupt, but since the Data Ready bit is not set, it does not read the Receive Buffer and so the UART's Interrupt Identification Register is never reset. This repeats until either the UART has some new data in the Receive Buffer (Data Ready) or the kernel kills the 8250 driver. The issue can be worked around by setting the RX trigger on the FIFO to 1 byte, essentially turning off Character Timeout interrupts. This can be done through the sysfs as follows: I hypothesize that the way we get erroneous Character Timeout interrupts is that it sometimes fails to clear the interrupt on Receive Buffer read, but I have not been able to confirm it. In any case, this appears to be a hardware issue and to handle it properly we would need a new PNP ID and a special quirk. echo 1 > /sys/class/tty/ttyS0/rx_trig_bytes We are no longer tracking in Yocto Project Bugzilla MinnowBoard and MinnowBoard-MAX HW and firmware bugs. |