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 option, which will cause it to generate an overrun every seconds (default .5) PROVIDED is not too small.