2008-01-12 20:16:17

by Benjamin LaHaise

[permalink] [raw]
Subject: [PATCH] serial: remove "too much work for irq" printk

When using kvm with a serial console, the serial driver will print out
"too much work for irq4" on any heavy activity (ie vi on a file repainting
the terminal). This message is entirely spurious, as output continues to
work fine. Remove the message as it corrupts screen output and is far too
easy to trigger.

-ben

Signed-off-by: Benjamin LaHaise <[email protected]>
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index f94109c..030b8b5 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -1493,12 +1493,8 @@ static irqreturn_t serial8250_interrupt(int irq, void *dev_id)

l = l->next;

- if (l == i->head && pass_counter++ > PASS_LIMIT) {
- /* If we hit this, we're dead. */
- printk(KERN_ERR "serial8250: too much work for "
- "irq%d\n", irq);
+ if (l == i->head && pass_counter++ > PASS_LIMIT)
break;
- }
} while (l != end);

spin_unlock(&i->lock);


2008-01-12 20:23:27

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] serial: remove "too much work for irq" printk

On Sat, Jan 12, 2008 at 03:15:43PM -0500, Benjamin LaHaise wrote:
> When using kvm with a serial console, the serial driver will print out
> "too much work for irq4" on any heavy activity (ie vi on a file repainting
> the terminal). This message is entirely spurious, as output continues to
> work fine. Remove the message as it corrupts screen output and is far too
> easy to trigger.

Yeah, this message has been annoying me too. Thanks for sending the
patch.

2008-01-12 21:27:44

by Alan

[permalink] [raw]
Subject: Re: [PATCH] serial: remove "too much work for irq" printk

On Sat, 12 Jan 2008 15:15:43 -0500
Benjamin LaHaise <[email protected]> wrote:

> When using kvm with a serial console, the serial driver will print out
> "too much work for irq4" on any heavy activity (ie vi on a file repainting
> the terminal). This message is entirely spurious, as output continues to
> work fine. Remove the message as it corrupts screen output and is far too
> easy to trigger.

NAK. This is a qemu/kvm emulation bug. The real check is there to catched
jammed IRQs and combined with the IRQ bug handling nowdays does actually
do the intended job.

Our serial port code (correctly) interprets a continuous stream of bytes
at an impossible bit rate as an error. KVM should be emulating to some
extent at least the timing on serial interfaces or using a virtualised
interface.

Alan

2008-01-12 21:39:27

by H. Peter Anvin

[permalink] [raw]
Subject: Re: [PATCH] serial: remove "too much work for irq" printk

Alan Cox wrote:
> On Sat, 12 Jan 2008 15:15:43 -0500
> Benjamin LaHaise <[email protected]> wrote:
>
>> When using kvm with a serial console, the serial driver will print out
>> "too much work for irq4" on any heavy activity (ie vi on a file repainting
>> the terminal). This message is entirely spurious, as output continues to
>> work fine. Remove the message as it corrupts screen output and is far too
>> easy to trigger.
>
> NAK. This is a qemu/kvm emulation bug. The real check is there to catched
> jammed IRQs and combined with the IRQ bug handling nowdays does actually
> do the intended job.
>
> Our serial port code (correctly) interprets a continuous stream of bytes
> at an impossible bit rate as an error. KVM should be emulating to some
> extent at least the timing on serial interfaces or using a virtualised
> interface.
>

This is going to put trouble in other places unless, at least, it can be
turned off. The UART serial interface is heavily emulated as a console
interface without an actual serial port behind it, both in hardware and
software. Rates will typically vastly exceed real serial port rates,
especially emulating 16450 or 16550 (which is typical) which are limited
to 115200 bps.

-hpa

2008-01-12 21:45:19

by Alan

[permalink] [raw]
Subject: Re: [PATCH] serial: remove "too much work for irq" printk

> This is going to put trouble in other places unless, at least, it can be
> turned off. The UART serial interface is heavily emulated as a console
> interface without an actual serial port behind it, both in hardware and
> software. Rates will typically vastly exceed real serial port rates,

Yes Dell do it, HP do it, IBM do it. Have done for years, never caused us
a problem. Its only KVM tripping it.

As to bit rate we support up to about 1 to 1.5 Mbit.

Alan

2008-01-12 21:58:26

by H. Peter Anvin

[permalink] [raw]
Subject: Re: [PATCH] serial: remove "too much work for irq" printk

Alan Cox wrote:
>> This is going to put trouble in other places unless, at least, it can be
>> turned off. The UART serial interface is heavily emulated as a console
>> interface without an actual serial port behind it, both in hardware and
>> software. Rates will typically vastly exceed real serial port rates,
>
> Yes Dell do it, HP do it, IBM do it. Have done for years, never caused us
> a problem. Its only KVM tripping it.
>
> As to bit rate we support up to about 1 to 1.5 Mbit.
>

FWIW, the highest rate I've seen in hardware is a FIFO about 4K deep
that can be polled at about 25 MHz when all the overhead is accounted for.

-hpa

2008-01-13 22:03:41

by Pavel Machek

[permalink] [raw]
Subject: Re: [PATCH] serial: remove "too much work for irq" printk

On Sat 2008-01-12 21:24:57, Alan Cox wrote:
> On Sat, 12 Jan 2008 15:15:43 -0500
> Benjamin LaHaise <[email protected]> wrote:
>
> > When using kvm with a serial console, the serial driver will print out
> > "too much work for irq4" on any heavy activity (ie vi on a file repainting
> > the terminal). This message is entirely spurious, as output continues to
> > work fine. Remove the message as it corrupts screen output and is far too
> > easy to trigger.
>
> NAK. This is a qemu/kvm emulation bug. The real check is there to catched
> jammed IRQs and combined with the IRQ bug handling nowdays does actually
> do the intended job.
>
> Our serial port code (correctly) interprets a continuous stream of bytes
> at an impossible bit rate as an error. KVM should be emulating to some
> extent at least the timing on serial interfaces or using a virtualised
> interface.

How can you tell apart impossible bit rate from really slow CPU, or
maybe just an SMI storm, or heavy busmaster DMA?

Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html