* [ALSA] emu10k1: hw_ptr skipping when unpausing mplayer
@ 2009-07-18 16:07 Piotr Kaczuba
2009-07-20 6:33 ` Takashi Iwai
0 siblings, 1 reply; 7+ messages in thread
From: Piotr Kaczuba @ 2009-07-18 16:07 UTC (permalink / raw)
To: linux-kernel
Since 2.6.30 I'm experiencing sound and video stuttering when unpausing
mplayer. The soundcard is an Audigy 1, driver is emu10k1. Kernel is
x86_64, userspace is 32-bit. I doesn't happen always, but regularly
enough.
Below is the ouput of mplayer:
[AO_ALSA] alsa-lib: pcm.c:6482:(snd_pcm_mmap_commit) commit offset (8886)
doesn't match with appl_ptr (139955) % buf_size (16384)
[AO_ALSA] Write error: Broken pipe
[AO_ALSA] Trying to reset soundcard.
[AO_ALSA] alsa-lib: pcm_hw.c:578:(snd_pcm_hw_prepare)
SNDRV_PCM_IOCTL_PREPARE failed: Device or resource busy
[AO_ALSA] alsa-lib: pcm_hw.c:578:(snd_pcm_hw_prepare)
SNDRV_PCM_IOCTL_PREPARE failed: Device or resource busy
[AO_ALSA] alsa-lib: pcm_hw.c:578:(snd_pcm_hw_prepare)
SNDRV_PCM_IOCTL_PREPARE failed: Device or resource busy
[AO_ALSA] pcm prepare error: Device or resource busy
After setting xrun_debug to 5 I get the following in the log:
PCM: hw_ptr skipping! [Q] (pos=3071, delta=17225, period=1024,
jdelta=18/358/0)
Pid: 0, comm: swapper Not tainted 2.6.30.1-orbiter.x86-64.1 #1
Call Trace:
<IRQ> [<ffffffffa02d7c7f>] ? snd_pcm_period_elapsed+0x4df/0x520
[snd_pcm]
[<ffffffffa031f15f>] ? snd_emu10k1_interrupt+0x25f/0x550 [snd_emu10k1]
[<ffffffff8023a9ba>] ? run_timer_softirq+0x1a/0x250
[<ffffffff80268e99>] ? handle_IRQ_event+0x39/0xe0
[<ffffffff8026ad19>] ? handle_fasteoi_irq+0x79/0x110
[<ffffffff8020dd17>] ? handle_irq+0x17/0x20
[<ffffffff8020d7c1>] ? do_IRQ+0x51/0xd0
[<ffffffff8020bd13>] ? ret_from_intr+0x0/0x9
<EOI> [<ffffffff8021bea0>] ? lapic_next_event+0x0/0x20
[<ffffffff802127aa>] ? default_idle+0x3a/0x40
[<ffffffff8020a017>] ? cpu_idle+0x47/0xa0
[<ffffffff805a5aba>] ? start_kernel+0x2c3/0x384
[<ffffffff805a5373>] ? x86_64_start_kernel+0xe1/0xf2
PCM: hw_ptr skipping! (pos=5482, delta=3434, period=1024, jdelta=50/71)
Pid: 2870, comm: mplayer Not tainted 2.6.30.1-orbiter.x86-64.1 #1
Call Trace:
[<ffffffffa02d6bd3>] ? snd_pcm_update_hw_ptr+0x1d3/0x220 [snd_pcm]
[<ffffffffa02d211d>] ? snd_pcm_hwsync+0x9d/0xe0 [snd_pcm]
[<ffffffffa02d54e3>] ? snd_pcm_ioctl_compat+0x753/0x980 [snd_pcm]
[<ffffffff80209b36>] ? __switch_to+0x226/0x270
[<ffffffff80475407>] ? thread_return+0x30/0x1f9
[<ffffffff8024a032>] ? hrtimer_cancel+0x12/0x20
[<ffffffff80476710>] ? do_nanosleep+0x30/0xb0
[<ffffffff8024a0e0>] ? hrtimer_nanosleep+0xa0/0x130
[<ffffffff802ddd8b>] ? compat_sys_ioctl+0x19b/0x3e0
[<ffffffff8024d3bb>] ? getnstimeofday+0x5b/0xe0
[<ffffffff80266b56>] ? audit_syscall_entry+0x166/0x190
[<ffffffff80227266>] ? cstar_dispatch+0x7/0x26
PCM: hw_ptr skipping! [Q] (pos=7443, delta=5395, period=1024,
jdelta=91/112/2)
Pid: 2870, comm: mplayer Not tainted 2.6.30.1-orbiter.x86-64.1 #1
Call Trace:
<IRQ> [<ffffffffa02d7c7f>] ? snd_pcm_period_elapsed+0x4df/0x520
[snd_pcm]
[<ffffffffa031f15f>] ? snd_emu10k1_interrupt+0x25f/0x550 [snd_emu10k1]
[<ffffffff80268e99>] ? handle_IRQ_event+0x39/0xe0
[<ffffffff8022cd9d>] ? try_to_wake_up+0x14d/0x160
[<ffffffff8026ad19>] ? handle_fasteoi_irq+0x79/0x110
[<ffffffff8020dd17>] ? handle_irq+0x17/0x20
[<ffffffff8020d7c1>] ? do_IRQ+0x51/0xd0
[<ffffffff8020bd13>] ? ret_from_intr+0x0/0x9
[<ffffffff8021bea0>] ? lapic_next_event+0x0/0x20
[<ffffffff802354bd>] ? __do_softirq+0x3d/0xf0
[<ffffffff8020c2ea>] ? call_softirq+0x1a/0x30
[<ffffffff8020dcbd>] ? do_softirq+0x2d/0x70
[<ffffffff802352a5>] ? irq_exit+0x85/0xa0
[<ffffffff8021c74e>] ? smp_apic_timer_interrupt+0x4e/0x80
[<ffffffff8020be63>] ? apic_timer_interrupt+0x13/0x20
<EOI> [<ffffffffa02d20d9>] ? snd_pcm_hwsync+0x59/0xe0 [snd_pcm]
[<ffffffffa02d211d>] ? snd_pcm_hwsync+0x9d/0xe0 [snd_pcm]
[<ffffffffa02d54e3>] ? snd_pcm_ioctl_compat+0x753/0x980 [snd_pcm]
[<ffffffff80209b36>] ? __switch_to+0x226/0x270
[<ffffffff80475407>] ? thread_return+0x30/0x1f9
[<ffffffff8024a032>] ? hrtimer_cancel+0x12/0x20
[<ffffffff80476710>] ? do_nanosleep+0x30/0xb0
[<ffffffff8024a0e0>] ? hrtimer_nanosleep+0xa0/0x130
[<ffffffff802ddd8b>] ? compat_sys_ioctl+0x19b/0x3e0
[<ffffffff8024d3bb>] ? getnstimeofday+0x5b/0xe0
[<ffffffff80266b56>] ? audit_syscall_entry+0x166/0x190
[<ffffffff80227266>] ? cstar_dispatch+0x7/0x26
The log is virtually flooded with these messages until I interrupt
mplayer.
I'd be graceful for any help.
Greetings,
Piotr
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [ALSA] emu10k1: hw_ptr skipping when unpausing mplayer
2009-07-18 16:07 [ALSA] emu10k1: hw_ptr skipping when unpausing mplayer Piotr Kaczuba
@ 2009-07-20 6:33 ` Takashi Iwai
2009-07-20 18:57 ` Piotr Kaczuba
0 siblings, 1 reply; 7+ messages in thread
From: Takashi Iwai @ 2009-07-20 6:33 UTC (permalink / raw)
To: Piotr Kaczuba; +Cc: linux-kernel
At Sat, 18 Jul 2009 16:07:07 +0000 (UTC),
Piotr Kaczuba wrote:
>
> Since 2.6.30 I'm experiencing sound and video stuttering when unpausing
> mplayer. The soundcard is an Audigy 1, driver is emu10k1. Kernel is
> x86_64, userspace is 32-bit. I doesn't happen always, but regularly
> enough.
To be sure -- isn't it arch-independent? I guess 64bit user-space
can cause the same problem.
>
>
> Below is the ouput of mplayer:
>
> [AO_ALSA] alsa-lib: pcm.c:6482:(snd_pcm_mmap_commit) commit offset (8886)
> doesn't match with appl_ptr (139955) % buf_size (16384)
> [AO_ALSA] Write error: Broken pipe
> [AO_ALSA] Trying to reset soundcard.
> [AO_ALSA] alsa-lib: pcm_hw.c:578:(snd_pcm_hw_prepare)
> SNDRV_PCM_IOCTL_PREPARE failed: Device or resource busy
> [AO_ALSA] alsa-lib: pcm_hw.c:578:(snd_pcm_hw_prepare)
> SNDRV_PCM_IOCTL_PREPARE failed: Device or resource busy
> [AO_ALSA] alsa-lib: pcm_hw.c:578:(snd_pcm_hw_prepare)
> SNDRV_PCM_IOCTL_PREPARE failed: Device or resource busy
> [AO_ALSA] pcm prepare error: Device or resource busy
Hm, these errors in snd_pcm_hw_prepare look different.
Maybe it's a bug in libao, but needs more investigation.
> After setting xrun_debug to 5 I get the following in the log:
>
> PCM: hw_ptr skipping! [Q] (pos=3071, delta=17225, period=1024,
> jdelta=18/358/0)
> Pid: 0, comm: swapper Not tainted 2.6.30.1-orbiter.x86-64.1 #1
> Call Trace:
> <IRQ> [<ffffffffa02d7c7f>] ? snd_pcm_period_elapsed+0x4df/0x520
> [snd_pcm]
> [<ffffffffa031f15f>] ? snd_emu10k1_interrupt+0x25f/0x550 [snd_emu10k1]
> [<ffffffff8023a9ba>] ? run_timer_softirq+0x1a/0x250
> [<ffffffff80268e99>] ? handle_IRQ_event+0x39/0xe0
> [<ffffffff8026ad19>] ? handle_fasteoi_irq+0x79/0x110
> [<ffffffff8020dd17>] ? handle_irq+0x17/0x20
> [<ffffffff8020d7c1>] ? do_IRQ+0x51/0xd0
> [<ffffffff8020bd13>] ? ret_from_intr+0x0/0x9
> <EOI> [<ffffffff8021bea0>] ? lapic_next_event+0x0/0x20
> [<ffffffff802127aa>] ? default_idle+0x3a/0x40
> [<ffffffff8020a017>] ? cpu_idle+0x47/0xa0
> [<ffffffff805a5aba>] ? start_kernel+0x2c3/0x384
> [<ffffffff805a5373>] ? x86_64_start_kernel+0xe1/0xf2
> PCM: hw_ptr skipping! (pos=5482, delta=3434, period=1024, jdelta=50/71)
> Pid: 2870, comm: mplayer Not tainted 2.6.30.1-orbiter.x86-64.1 #1
> Call Trace:
> [<ffffffffa02d6bd3>] ? snd_pcm_update_hw_ptr+0x1d3/0x220 [snd_pcm]
> [<ffffffffa02d211d>] ? snd_pcm_hwsync+0x9d/0xe0 [snd_pcm]
> [<ffffffffa02d54e3>] ? snd_pcm_ioctl_compat+0x753/0x980 [snd_pcm]
> [<ffffffff80209b36>] ? __switch_to+0x226/0x270
> [<ffffffff80475407>] ? thread_return+0x30/0x1f9
> [<ffffffff8024a032>] ? hrtimer_cancel+0x12/0x20
> [<ffffffff80476710>] ? do_nanosleep+0x30/0xb0
> [<ffffffff8024a0e0>] ? hrtimer_nanosleep+0xa0/0x130
> [<ffffffff802ddd8b>] ? compat_sys_ioctl+0x19b/0x3e0
> [<ffffffff8024d3bb>] ? getnstimeofday+0x5b/0xe0
> [<ffffffff80266b56>] ? audit_syscall_entry+0x166/0x190
> [<ffffffff80227266>] ? cstar_dispatch+0x7/0x26
> PCM: hw_ptr skipping! [Q] (pos=7443, delta=5395, period=1024,
> jdelta=91/112/2)
> Pid: 2870, comm: mplayer Not tainted 2.6.30.1-orbiter.x86-64.1 #1
> Call Trace:
> <IRQ> [<ffffffffa02d7c7f>] ? snd_pcm_period_elapsed+0x4df/0x520
> [snd_pcm]
> [<ffffffffa031f15f>] ? snd_emu10k1_interrupt+0x25f/0x550 [snd_emu10k1]
> [<ffffffff80268e99>] ? handle_IRQ_event+0x39/0xe0
> [<ffffffff8022cd9d>] ? try_to_wake_up+0x14d/0x160
> [<ffffffff8026ad19>] ? handle_fasteoi_irq+0x79/0x110
> [<ffffffff8020dd17>] ? handle_irq+0x17/0x20
> [<ffffffff8020d7c1>] ? do_IRQ+0x51/0xd0
> [<ffffffff8020bd13>] ? ret_from_intr+0x0/0x9
> [<ffffffff8021bea0>] ? lapic_next_event+0x0/0x20
> [<ffffffff802354bd>] ? __do_softirq+0x3d/0xf0
> [<ffffffff8020c2ea>] ? call_softirq+0x1a/0x30
> [<ffffffff8020dcbd>] ? do_softirq+0x2d/0x70
> [<ffffffff802352a5>] ? irq_exit+0x85/0xa0
> [<ffffffff8021c74e>] ? smp_apic_timer_interrupt+0x4e/0x80
> [<ffffffff8020be63>] ? apic_timer_interrupt+0x13/0x20
> <EOI> [<ffffffffa02d20d9>] ? snd_pcm_hwsync+0x59/0xe0 [snd_pcm]
> [<ffffffffa02d211d>] ? snd_pcm_hwsync+0x9d/0xe0 [snd_pcm]
> [<ffffffffa02d54e3>] ? snd_pcm_ioctl_compat+0x753/0x980 [snd_pcm]
> [<ffffffff80209b36>] ? __switch_to+0x226/0x270
> [<ffffffff80475407>] ? thread_return+0x30/0x1f9
> [<ffffffff8024a032>] ? hrtimer_cancel+0x12/0x20
> [<ffffffff80476710>] ? do_nanosleep+0x30/0xb0
> [<ffffffff8024a0e0>] ? hrtimer_nanosleep+0xa0/0x130
> [<ffffffff802ddd8b>] ? compat_sys_ioctl+0x19b/0x3e0
> [<ffffffff8024d3bb>] ? getnstimeofday+0x5b/0xe0
> [<ffffffff80266b56>] ? audit_syscall_entry+0x166/0x190
> [<ffffffff80227266>] ? cstar_dispatch+0x7/0x26
>
> The log is virtually flooded with these messages until I interrupt
> mplayer.
It's endless because the reset failed in the above.
The problem is likely due to some wrong operation in the pause/restart.
Does the patch below work around a problem?
If this works (somehow, not causing the same error), we can focus more
on the pause implementation of emu10k1.
thanks,
Takashi
---
diff --git a/sound/pci/emu10k1/emupcm.c b/sound/pci/emu10k1/emupcm.c
index 55b83ef..ae405a4 100644
--- a/sound/pci/emu10k1/emupcm.c
+++ b/sound/pci/emu10k1/emupcm.c
@@ -953,7 +953,7 @@ static struct snd_pcm_hardware snd_emu10k1_playback =
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_BLOCK_TRANSFER |
SNDRV_PCM_INFO_RESUME |
- SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_PAUSE),
+ SNDRV_PCM_INFO_MMAP_VALID /*| SNDRV_PCM_INFO_PAUSE*/),
.formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
.rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_96000,
.rate_min = 4000,
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [ALSA] emu10k1: hw_ptr skipping when unpausing mplayer
2009-07-20 6:33 ` Takashi Iwai
@ 2009-07-20 18:57 ` Piotr Kaczuba
2009-07-21 5:48 ` Takashi Iwai
0 siblings, 1 reply; 7+ messages in thread
From: Piotr Kaczuba @ 2009-07-20 18:57 UTC (permalink / raw)
To: Takashi Iwai; +Cc: linux-kernel
On Mon, Jul 20, 2009 at 08:33:37AM +0200, Takashi Iwai wrote:
> At Sat, 18 Jul 2009 16:07:07 +0000 (UTC),
> Piotr Kaczuba wrote:
> >
> > Since 2.6.30 I'm experiencing sound and video stuttering when unpausing
> > mplayer. The soundcard is an Audigy 1, driver is emu10k1. Kernel is
> > x86_64, userspace is 32-bit. I doesn't happen always, but regularly
> > enough.
>
> To be sure -- isn't it arch-independent? I guess 64bit user-space
> can cause the same problem.
I've tested it and it's the same with 64bit mplayer.
[...]
> The problem is likely due to some wrong operation in the pause/restart.
> Does the patch below work around a problem?
>
> If this works (somehow, not causing the same error), we can focus more
> on the pause implementation of emu10k1.
[...]
Yes, the patch helps. I've tried half a dozen times and the problem
hasn't reappeared. No messages at all with xrun_debug either. So it
is probably the pause implementation of emu10k1.
Thanks,
Piotr
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [ALSA] emu10k1: hw_ptr skipping when unpausing mplayer
2009-07-20 18:57 ` Piotr Kaczuba
@ 2009-07-21 5:48 ` Takashi Iwai
2009-07-21 9:41 ` Piotr Kaczuba
0 siblings, 1 reply; 7+ messages in thread
From: Takashi Iwai @ 2009-07-21 5:48 UTC (permalink / raw)
To: Piotr Kaczuba; +Cc: linux-kernel
At Mon, 20 Jul 2009 20:57:21 +0200,
Piotr Kaczuba wrote:
>
> On Mon, Jul 20, 2009 at 08:33:37AM +0200, Takashi Iwai wrote:
> > At Sat, 18 Jul 2009 16:07:07 +0000 (UTC),
> > Piotr Kaczuba wrote:
> > >
> > > Since 2.6.30 I'm experiencing sound and video stuttering when unpausing
> > > mplayer. The soundcard is an Audigy 1, driver is emu10k1. Kernel is
> > > x86_64, userspace is 32-bit. I doesn't happen always, but regularly
> > > enough.
> >
> > To be sure -- isn't it arch-independent? I guess 64bit user-space
> > can cause the same problem.
> I've tested it and it's the same with 64bit mplayer.
OK.
> [...]
> > The problem is likely due to some wrong operation in the pause/restart.
> > Does the patch below work around a problem?
> >
> > If this works (somehow, not causing the same error), we can focus more
> > on the pause implementation of emu10k1.
> [...]
>
> Yes, the patch helps. I've tried half a dozen times and the problem
> hasn't reappeared. No messages at all with xrun_debug either. So it
> is probably the pause implementation of emu10k1.
Thanks. And did you test with the recent 2.6.31-rc* kernel, right?
Takashi
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [ALSA] emu10k1: hw_ptr skipping when unpausing mplayer
2009-07-21 5:48 ` Takashi Iwai
@ 2009-07-21 9:41 ` Piotr Kaczuba
2009-07-21 9:44 ` Takashi Iwai
2009-07-21 17:25 ` Piotr Kaczuba
0 siblings, 2 replies; 7+ messages in thread
From: Piotr Kaczuba @ 2009-07-21 9:41 UTC (permalink / raw)
To: Takashi Iwai; +Cc: linux-kernel
W dniu 2009-07-21 07:48, Takashi Iwai pisze:
[...]
> Thanks. And did you test with the recent 2.6.31-rc* kernel, right?
[...]
No, it was with 2.6.30.1. I will try with the latest rc today evening.
Thanks,
Piotr
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [ALSA] emu10k1: hw_ptr skipping when unpausing mplayer
2009-07-21 9:41 ` Piotr Kaczuba
@ 2009-07-21 9:44 ` Takashi Iwai
2009-07-21 17:25 ` Piotr Kaczuba
1 sibling, 0 replies; 7+ messages in thread
From: Takashi Iwai @ 2009-07-21 9:44 UTC (permalink / raw)
To: Piotr Kaczuba; +Cc: linux-kernel
At Tue, 21 Jul 2009 11:41:38 +0200,
Piotr Kaczuba wrote:
>
> W dniu 2009-07-21 07:48, Takashi Iwai pisze:
> [...]
> > Thanks. And did you test with the recent 2.6.31-rc* kernel, right?
> [...]
>
> No, it was with 2.6.30.1. I will try with the latest rc today evening.
Oh, then this might be a bug that has been already fixed.
I vaguely remember a similar bug...
Takashi
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [ALSA] emu10k1: hw_ptr skipping when unpausing mplayer
2009-07-21 9:41 ` Piotr Kaczuba
2009-07-21 9:44 ` Takashi Iwai
@ 2009-07-21 17:25 ` Piotr Kaczuba
1 sibling, 0 replies; 7+ messages in thread
From: Piotr Kaczuba @ 2009-07-21 17:25 UTC (permalink / raw)
To: Takashi Iwai; +Cc: linux-kernel
On Tue, Jul 21, 2009 at 11:41:38AM +0200, Piotr Kaczuba wrote:
[...]
> No, it was with 2.6.30.1. I will try with the latest rc today evening.
[...]
With 2.6.31-rc3 there's definitely an improvement. Xrun_debug set to 5,
I see for example the following on unpause:
[ 430.788525] __ratelimit: 97 callbacks suppressed
[ 430.789516] PCM: hw_ptr skipping! [Q] (pos=3071, delta=16446,
period=1024, jdelta=1/342/0)
[ 430.809853] PCM: hw_ptr skipping! [Q] (pos=4095, delta=2047,
period=1024, jdelta=21/42/0)
[ 430.824984] PCM: hw_ptr skipping! (pos=4821, delta=2773, period=1024,
jdelta=36/57)
[ 430.827087] PCM: hw_ptr skipping! (pos=4922, delta=2874, period=1024,
jdelta=39/59)
[ 430.829350] PCM: hw_ptr skipping! (pos=5031, delta=2983, period=1024,
jdelta=41/62)
[ 430.831256] PCM: hw_ptr skipping! [Q] (pos=5122, delta=3074,
period=1024, jdelta=43/64/1)
[ 430.835786] PCM: hw_ptr skipping! (pos=5340, delta=2268, period=1024,
jdelta=4/47)
[ 430.837913] PCM: hw_ptr skipping! (pos=5442, delta=2370, period=1024,
jdelta=6/49)
[ 430.839881] PCM: hw_ptr skipping! (pos=5536, delta=2464, period=1024,
jdelta=8/51)
[ 430.842959] PCM: hw_ptr skipping! (pos=5684, delta=2612, period=1024,
jdelta=11/54)
But there's no flood of messages anymore and no tracebacks either. In
fact, mplayer continues to play without any stutter.
Thanks,
Piotr
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2009-07-21 17:25 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-18 16:07 [ALSA] emu10k1: hw_ptr skipping when unpausing mplayer Piotr Kaczuba
2009-07-20 6:33 ` Takashi Iwai
2009-07-20 18:57 ` Piotr Kaczuba
2009-07-21 5:48 ` Takashi Iwai
2009-07-21 9:41 ` Piotr Kaczuba
2009-07-21 9:44 ` Takashi Iwai
2009-07-21 17:25 ` Piotr Kaczuba
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).