Bug 11644 - snd_pcm_rewind() is broken in the emu10k1 driver.
Summary: snd_pcm_rewind() is broken in the emu10k1 driver.
Status: CLOSED OBSOLETE
Alias: None
Product: Drivers
Classification: Unclassified
Component: Sound(ALSA) (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Jaroslav Kysela
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-09-25 02:08 UTC by sangu
Modified: 2012-05-22 14:17 UTC (History)
3 users (show)

See Also:
Kernel Version: 2.6.27-0.352.rc7.git1.fc10
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description sangu 2008-09-25 02:08:01 UTC
Distribution: Fedora Rawhide

Hardware Environment:
$ cat /proc/asound/cards
 0 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xfe020000 irq 21
 1 [Live           ]: EMU10K1 - SBLive! Platinum [CT4760P]
                      SBLive! Platinum [CT4760P] (rev.7, serial:0x80401102) at 0xcc00, irq 17

alsa-info.txt : attachment 18024 [details]

Software Environment:

Problem Description:
https://bugzilla.redhat.com/show_bug.cgi?id=462026#c0

Whenever sound sparks, below log happens in pulseaudio -vv 
[...]
I: module-alsa-sink.c: Underrun!
D: protocol-native.c: Requesting rewind due to end of underrun.
D: module-alsa-sink.c: Requested to rewind 32536 bytes.
D: module-alsa-sink.c: Limited to 496 bytes.
D: module-alsa-sink.c: before: 124
D: module-alsa-sink.c: after: 124
D: module-alsa-sink.c: Rewound 496 bytes.
D: sink.c: Processing rewind...
D: sink-input.c: Have to rewind 496 bytes on render memblockq.
[...]

https://bugzilla.redhat.com/show_bug.cgi?id=462026#c3 
Seems as if snd_pcm_rewind() is broken in the emu10k1 driver. Reassigning to ALSA/kernel.
Comment 1 Takashi Iwai 2008-10-07 06:43:04 UTC
I guess it's rather a problem of alsa-lib.  The bug in snd_pcm_rewind() was fixed recently.  Make sure that you have alsa-lib-1.0.17a or 1.0.18-rc*.
Comment 2 sangu 2008-10-27 07:12:19 UTC
(In reply to comment #1)
> I guess it's rather a problem of alsa-lib.  The bug in snd_pcm_rewind() was
> fixed recently.  Make sure that you have alsa-lib-1.0.17a or 1.0.18-rc*.
> 

This issue still happens with http://www.alsa-project.org/snapshot/files/alsa-lib-1.0.18rc3.9.g8feae.tar.bz2

$ pulseauido -vvv
[skip]
D: memblockq.c: memblockq requested: maxlength=141120, tlength=70560, base=8, prebuf=67032, minreq=3528 maxrewind=0
D: memblockq.c: memblockq sanitized: maxlength=141120, tlength=70560, base=8, prebuf=67032, minreq=3528 maxrewind=0
I: protocol-native.c: Final latency 380.00 ms = 180.00 ms + 2*10.00 ms + 180.00 ms
D: module-alsa-sink.c: latency set to 180.00ms
D: module-alsa-sink.c: hwbuf_unused_frames=8446
D: module-alsa-sink.c: setting avail_min=8975
D: module-alsa-sink.c: Requesting rewind due to latency change.
D: module-alsa-sink.c: Requested to rewind 65536 bytes.
D: module-alsa-sink.c: Limited to 34228 bytes.
D: module-alsa-sink.c: before: 8557
D: module-alsa-sink.c: after: 8557
D: module-alsa-sink.c: Rewound 34228 bytes.
D: sink.c: Processing rewind...
D: sink-input.c: Have to rewind 34228 bytes on render memblockq.
D: protocol-native.c: Requesting rewind due to end of underrun.
D: module-alsa-sink.c: Requested to rewind 65536 bytes.
D: module-alsa-sink.c: Limited to 480 bytes.
D: module-alsa-sink.c: before: 120
D: module-alsa-sink.c: after: 120
D: module-alsa-sink.c: Rewound 480 bytes.
D: sink.c: Processing rewind...
D: sink-input.c: Have to rewind 480 bytes on render memblockq.
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
I: module-alsa-sink.c: Underrun!
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: protocol-native.c: Requesting rewind due to end of underrun.
D: module-alsa-sink.c: Requested to rewind 33036 bytes.
D: module-alsa-sink.c: Limited to 428 bytes.
D: module-alsa-sink.c: before: 107
D: module-alsa-sink.c: after: 107
D: module-alsa-sink.c: Rewound 428 bytes.
D: sink.c: Processing rewind...
D: sink-input.c: Have to rewind 428 bytes on render memblockq.
I: module-alsa-sink.c: Underrun!
D: protocol-native.c: Requesting rewind due to end of underrun.
D: module-alsa-sink.c: Requested to rewind 32080 bytes.
D: module-alsa-sink.c: Limited to 440 bytes.
D: module-alsa-sink.c: before: 110
D: module-alsa-sink.c: after: 110
D: module-alsa-sink.c: Rewound 440 bytes.
D: sink.c: Processing rewind...
D: sink-input.c: Have to rewind 440 bytes on render memblockq.
I: module-alsa-sink.c: Underrun!
D: protocol-native.c: Requesting rewind due to end of underrun.
D: module-alsa-sink.c: Requested to rewind 32248 bytes.
D: module-alsa-sink.c: Limited to 304 bytes.
D: module-alsa-sink.c: before: 76
D: module-alsa-sink.c: after: 76
D: module-alsa-sink.c: Rewound 304 bytes.
D: sink.c: Processing rewind...
D: sink-input.c: Have to rewind 304 bytes on render memblockq.
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
I: module-alsa-sink.c: Underrun!
D: protocol-native.c: Requesting rewind due to end of underrun.
D: module-alsa-sink.c: Requested to rewind 31856 bytes.
D: module-alsa-sink.c: Limited to 276 bytes.
D: module-alsa-sink.c: before: 69
D: module-alsa-sink.c: after: 69
D: module-alsa-sink.c: Rewound 276 bytes.
D: sink.c: Processing rewind...
D: sink-input.c: Have to rewind 276 bytes on render memblockq.
I: module-alsa-sink.c: Underrun!
D: protocol-native.c: Requesting rewind due to end of underrun.
D: module-alsa-sink.c: Requested to rewind 31548 bytes.
D: module-alsa-sink.c: Limited to 344 bytes.
D: module-alsa-sink.c: before: 86
D: module-alsa-sink.c: after: 86
D: module-alsa-sink.c: Rewound 344 bytes.
D: sink.c: Processing rewind...
D: sink-input.c: Have to rewind 344 bytes on render memblockq.
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
I: module-alsa-sink.c: Underrun!
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: protocol-native.c: Requesting rewind due to end of underrun.
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
D: module-alsa-sink.c: Requested to rewind 30852 bytes.
D: module-alsa-sink.c: Limited to 508 bytes.
D: module-alsa-sink.c: before: 127
D: module-alsa-sink.c: after: 127
D: module-alsa-sink.c: Rewound 508 bytes.
D: sink.c: Processing rewind...
D: sink-input.c: Have to rewind 508 bytes on render memblockq.
D: module-alsa-sink.c: Wakeup from ALSA! OUTPUT
Comment 3 sangu 2008-12-15 17:43:26 UTC
This bug still happens.

https://bugzilla.redhat.com/show_bug.cgi?id=462026#c24

$ uname -r
2.6.28-0.129.rc8.git2.fc11.i686
$ rpm -qa | grep alsa
alsa-lib-1.0.18-7.fc10.i386
alsa-utils-1.0.18-6.fc10.i386
alsa-plugins-pulseaudio-1.0.18-2.fc10.i386
alsa-lib-devel-1.0.18-7.fc10.i386

$ pulseaudio -vvv
[skip]
I: module-alsa-sink.c: Starting playback.
D: module-alsa-sink.c: latency set to 180.00ms
D: module-alsa-sink.c: hwbuf_unused_frames=8446
D: module-alsa-sink.c: setting avail_min=36671
D: module-alsa-sink.c: Requesting rewind due to latency change.
D: module-alsa-sink.c: Requested to rewind 65536 bytes.
D: module-alsa-sink.c: Limited to 61784 bytes.
D: module-alsa-sink.c: before: 15446
D: module-alsa-sink.c: after: 15446
D: module-alsa-sink.c: Rewound 61784 bytes.
D: sink.c: Processing rewind...
D: sink-input.c: Have to rewind 61784 bytes on render memblockq.
D: protocol-native.c: Requesting rewind due to end of underrun.
D: module-alsa-sink.c: Requested to rewind 65536 bytes.
D: module-alsa-sink.c: Limited to 27280 bytes.
D: module-alsa-sink.c: before: 6820
D: module-alsa-sink.c: after: 6820
D: module-alsa-sink.c: Rewound 27280 bytes.
D: sink.c: Processing rewind...
D: sink-input.c: Have to rewind 27280 bytes on render memblockq.
I: module-alsa-sink.c: Underrun!
N: module-alsa-sink.c: Increasing wakeup watermark to 40.00 ms
D: protocol-native.c: Requesting rewind due to end of underrun.
D: module-alsa-sink.c: Requested to rewind 53728 bytes.
D: module-alsa-sink.c: Limited to 23880 bytes.
D: module-alsa-sink.c: before: 5970
D: module-alsa-sink.c: after: 5970
D: module-alsa-sink.c: Rewound 23880 bytes.
D: sink.c: Processing rewind...
D: sink-input.c: Have to rewind 23880 bytes on render memblockq.
I: module-alsa-sink.c: Underrun!
N: module-alsa-sink.c: Increasing wakeup watermark to 80.00 ms
D: protocol-native.c: Requesting rewind due to end of underrun.
D: module-alsa-sink.c: Requested to rewind 42792 bytes.
D: module-alsa-sink.c: Limited to 16784 bytes.
D: module-alsa-sink.c: before: 4196
D: module-alsa-sink.c: after: 4196
D: module-alsa-sink.c: Rewound 16784 bytes.
D: sink.c: Processing rewind...
D: sink-input.c: Have to rewind 16784 bytes on render memblockq.
Comment 4 Alan 2012-05-22 14:17:18 UTC
Closing as obsolete, if seen on modern kernels please update the bug

Note You need to log in before you can comment on or make changes to this bug.