Re: Audio skipping with alsa

From: Takashi Iwai
Date: Wed Sep 10 2003 - 08:24:43 EST


At Tue, 09 Sep 2003 15:14:21 +0100,
Russ Garrett wrote:
>
> Hi, I've just installed an M-Audio Audiophile 2496 sound card (Envy24)
> with the 2.6.0-test5 kernel (with the preemptible kernel option on),
> using the ice1712 alsa driver (although this also happens in 2.4.21
> without preemptible kernel).
>
> Music plays fine until I do *anything* - changing windows, scrolling,
> pressing buttons, whatever - when it stutters badly. Scrolling in an
> anti-aliased terminal is especially fun. However, if I play using XMMS
> with the realtime priority option, everything's fine, although that has
> the distinct disadvantage that I have to run it as root.
>
> I've tried enabling/disabling ACPI/APM/APIC. The card isn't sharing an
> IRQ with anything. It's not a hard drive/IDE related issue, although
> that's all using DMA anyway.
>
> I do have both an AGP and a PCI graphics card installed and in use,
> although the stuttering happens if I do anything on either. I've found a
> few references to this problem on google, but no solutions. It works
> fine on Windows ;).
>
> Here's what happens if I try to scroll in gnome-terminal whilst aplaying
> something:
>
> rg@russell:~$ aplay < test
> Playing raw data 'stdin' : Unsigned 8 bit, Rate 8000 Hz, Mono
> xrun!!! (at least 869.990 ms long)
> xrun!!! (at least 21.552 ms long)
> xrun!!! (at least 17.686 ms long)
> xrun!!! (at least 16.482 ms long)
> xrun!!! (at least 17.194 ms long)
> xrun!!! (at least 17.126 ms long)
> xrun!!! (at least 14.123 ms long)
> xrun!!! (at least 13.679 ms long)
> xrun!!! (at least 12.928 ms long)
> [...and so on, for another 20 or so lines]

i guess it's a general scheduler issue.

why you face this problem more severly than others:
the timing on the ice1712 (envy24) chip is quite tight, because it
always needs 32bit * 10 channels interleaved samples even if you want
to play a two-channel mp3 file. more badly, the maximum buffer size
is limited to 64k byte. hence, at most, you can get about 0.1 sec for
the hardware buffer. if the task switching to the audio thread cannot
be done in 0.1 sec, you'll get audio drop outs.

the recent scheduler patch might help...

--
Takashi Iwai <tiwai@xxxxxxx> SuSE Linux AG - www.suse.de
ALSA Developer ALSA Project - www.alsa-project.org
-
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/