Uros Bizjak wrote:

  Could you put a printk() in snd_sb16_*_pointer() functions
(sb16_main.c souce)? This printk() should print dma channel and value of
ptr, so we can see when/if DMA channels gets stuck.
Done.  The result put 2.6 megabytes into /var/log/messages.
The head -10 and tail -50 of the relevant section is
attached below;  if anybody wants more detail the whole
shebang is available at
  http://www.av8n.net/~jsd/alsa/messages.txt

  BTW: It looks like another sb16 hardware bug to me. On module re-load,
drivers reset sb16 chip, that is why module reload helps.
Plausible....  But note that the cs4239 module gets i/o
errors when provoked by the same program, so there may
be driver design weaknesses involved, too.

Perhaps you can derive a small test case from your application, which
will help developers to stresstest soundcard and perhaps PCM layer?
My program is not super-small, but the relevant
passages are simple and easy to find.
You can help yourself at
  http://www.monmouth.com/~jsd/turbid/

Compile the thing and invoke it as
  ./turbid -F 440
or
  ./turbid -v -F 440

Note that just for you I added the --snooze <tt>
option, which will cause it to generate an
overrun every <tt> seconds (default .5) PROVIDED
<tt> is not too small.
Dec  6 06:51:58 moat2 jsd: about to start ....
Dec  6 06:52:03 moat2 turbid: PID file "/var/run/turbid.pid" already exists, not 
overwriting
Dec  6 06:52:03 moat2 kernel: snd_sb16_capture_pointer  dma: 5 ptr: 8
Dec  6 06:52:03 moat2 kernel: snd_sb16_capture_pointer  dma: 5 ptr: 4110
Dec  6 06:52:03 moat2 kernel: snd_sb16_capture_pointer  dma: 5 ptr: 4894
Dec  6 06:52:03 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 11
Dec  6 06:52:03 moat2 kernel: snd_sb16_capture_pointer  dma: 5 ptr: 8206
Dec  6 06:52:03 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 2055
Dec  6 06:52:03 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 2239
Dec  6 06:52:03 moat2 kernel: snd_sb16_capture_pointer  dma: 5 ptr: 12302
....
Dec  6 06:57:59 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 4129
Dec  6 06:57:59 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 6151
Dec  6 06:57:59 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 6176
Dec  6 06:57:59 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 6
Dec  6 06:57:59 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 33
Dec  6 06:57:59 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 2053
Dec  6 06:57:59 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 2081
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 4103
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 5861
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 6151
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 6317
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 7
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 34
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 2055
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 2081
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 4103
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 4129
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 6151
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 6177
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 7
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 242
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 2055
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 2083
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 4103
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 4129
Dec  6 06:58:00 moat2 kernel: snd_sb16_capture_pointer  dma: 5 ptr: 6
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 6155
Dec  6 06:58:00 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 7893
Dec  6 06:58:00 moat2 kernel: snd_sb16_capture_pointer  dma: 5 ptr: 4210
Dec  6 06:58:00 moat2 kernel: snd_sb16_capture_pointer  dma: 5 ptr: 4386
Dec  6 06:58:10 moat2 turbid[4903]: Calout wrote 8820 got -5
Dec  6 06:58:10 moat2 kernel: snd_sb16_capture_pointer  dma: 5 ptr: 8192
Dec  6 06:58:10 moat2 kernel: snd_sb16_capture_pointer  dma: 5 ptr: 8192
Dec  6 06:58:10 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 0
Dec  6 06:58:10 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 0
Dec  6 06:58:20 moat2 kernel: snd_sb16_capture_pointer  dma: 5 ptr: 8192
Dec  6 06:58:20 moat2 turbid[4903]: Calout wrote 8820 got -5
Dec  6 06:58:20 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 0
Dec  6 06:58:30 moat2 turbid[4902]: Read_stuff requested 2048 got -5: Input/output 
error
Dec  6 06:58:30 moat2 turbid[4902]: turbid exiting, status 1
Dec  6 06:58:30 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 0
Dec  6 06:58:49 moat2 jsd: program has exited due to i/o error
Dec  6 06:59:10 moat2 jsd: will restart it just for fun
Dec  6 06:59:15 moat2 turbid: PID file "/var/run/turbid.pid" already exists, not 
overwriting
Dec  6 06:59:15 moat2 kernel: snd_sb16_capture_pointer  dma: 5 ptr: 8
Dec  6 06:59:15 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 11
Dec  6 06:59:25 moat2 turbid[4908]: Read_stuff requested 2048 got -5: Input/output 
error
Dec  6 06:59:25 moat2 turbid[4908]: turbid exiting, status 1
Dec  6 06:59:25 moat2 kernel: snd_sb16_playback_pointer dma: 1 ptr: 2048
Dec  6 06:59:29 moat2 jsd: program has exited due to i/o error

Reply via email to