Re: sound skipping regression introduced in 2.6.30-rc8

From: Takashi Iwai
Date: Thu Jun 11 2009 - 10:02:30 EST


At Thu, 11 Jun 2009 04:28:48 -0700 (PDT),
David Miller wrote:
>
> From: Takashi Iwai <tiwai@xxxxxxx>
> Date: Wed, 10 Jun 2009 21:37:14 +0200
>
> > Could you set CONFIG_SND_PCM_XRUN_DEBUG=y and do
> > # echo 1 > /proc/asound/card0/pcm0p/xrun_debug
> > then check your app? Does it work better, and get any kernel messages?
>
> Yes, the skipping goes away and I get hw_ptr skipping kernel messages:
>
> [61581.519051] PCM: hw_ptr skipping! (pos=10240, delta=15368, period=1024, jdelta=0/32)
> [61584.420358] PCM: hw_ptr skipping! (pos=2048, delta=16328, period=1024, jdelta=2/34)
> [61593.956318] PCM: hw_ptr skipping! (pos=1024, delta=15368, period=1024, jdelta=0/32)
> [61596.964300] PCM: hw_ptr skipping! (pos=14336, delta=15368, period=1024, jdelta=0/32)
> [61600.036292] PCM: hw_ptr skipping! (pos=14336, delta=15368, period=1024, jdelta=0/32)
> [61605.454947] PCM: hw_ptr skipping! (pos=12288, delta=15368, period=1024, jdelta=0/32)

OK, then obviously intel8x0 driver gets screwed and is giving bogus
position data.


At Thu, 11 Jun 2009 05:02:20 -0700 (PDT),
David Miller wrote:
>
> From: Takashi Iwai <tiwai@xxxxxxx>
> Date: Wed, 10 Jun 2009 21:37:14 +0200
>
> > Also, it'd be helpful if you can check whether the problem exists in
> > the current sound git tree (for-linus branch), too.
> > git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git for-linus
>
> Same behavior as 2.6.30, but debugging messages are formatted differently
> :-)
>
> [ 1109.062182] PCM: Lost interrupts? (stream=0, delta=16384, intr_ptr=73728)
> [ 1125.126123] PCM: Lost interrupts? (stream=0, delta=16384, intr_ptr=861184)
> [ 1131.398094] PCM: Lost interrupts? (stream=0, delta=16384, intr_ptr=1178624)
> [ 1135.579406] PCM: Lost interrupts? (stream=0, delta=16384, intr_ptr=1395712)
> [ 1145.115367] PCM: Lost interrupts? (stream=0, delta=16384, intr_ptr=1869824)
> [ 1152.688670] PCM: Lost interrupts? (stream=0, delta=16384, intr_ptr=2249728)

I guess this is because of the change of xrun_debug semantics.
Try to set 5 to xrun_debug instead of 1. Then you'll get the similar
results like 2.6.30, I guess. (Setting to 4 will run with the sanity
check but without debug prints, BTW.)

I'll investigate the problem, but probably a bit later as now is a
long weekend in Germany...


thanks,

Takashi
--
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/