Re: Losing interrupts

From: Lee Revell
Date: Thu Jul 15 2004 - 16:38:22 EST


On Wed, 2004-07-14 at 18:19, Lee Revell wrote:
> It seems that interrupts are being disabled for long periods, resulting
> in the soundcard interrupt being lost. I hacked the ALSA emu10k1 driver
> to keep track in the interrupt handler of the number of CPU cycles
> elapsed since the last time it ran. I am using a period that
> corresponds to 666 microseconds between interrupts, or ~400000 cycles on
> my 600Mhz CPU. As you can see the average jitter is *extremely* low -
> 50-400 CPU cycles of per interrupt. I hardcoded it to printk if the
> jitter is more than 15000 (only happens every 5-10 seconds), and error
> if it's really big. As you can see, something is disabling interrupts
> for a long time. This is a completely different issue from an XRUN,
> improving the scheduler latency will not solve this.
>

The problem is with the video driver (Via CastleRock integrated,
AGP4x). By dragging certain windows around slowly in X, I can reliably
cause interrupts to be completely disabled for tens of milliseconds.

There was an issue several years ago where Matrox figured out they could
get slightly better benchmark scores by not checking whether a FIFO on
the video card was full before writing to it, which would cause the PCI
bus to completely freeze until the FIFO had drained. Lots of vendors
followed suit until one of the audio software vendors figred it out and
called them on it, at which point they fixed their drivers. The effects
(massive audio drouputs) and the steps to reproduce (drag a window
around the screen slowly) were identical.

I will contact the maintainer.

Lee



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/