Comment 73 for bug 1315212

Revision history for this message
In , Rkfg (rkfg) wrote :

This command doesn't work, it says "aplay: set_params:1239: Channels count non available". The -D default:CARD=CA0106 variant works and it does not overrun. I only had overruns on recording (at least, explicit). That said, I've made a huge improvement in my system, I compiled a pf-kernel and set CONFIG_PREEMPT=y, CONFIG_HZ_1000=y and CONFIG_HZ=1000. The default Debian kernel is on 250 Hz and is not preemptible. Now that my kernel supports preemption I (crossing fingers) don't have ALSA over- and underruns anymore. They were quite sudden and audible as clicks/gaps. I saw this in the log:

Jan 4 20:25:15 homecomp pulseaudio[26848]: [alsa-sink-ca0106] alsa-sink.c: Scheduling delay of 11.42 ms > 11.31 ms, you might want to investigate this to improve latency...
Jan 4 20:25:15 homecomp pulseaudio[26848]: [alsa-sink-ca0106] alsa-sink.c: Underrun!
Jan 4 20:25:15 homecomp pulseaudio[26848]: [alsa-sink-ca0106] alsa-sink.c: Increasing minimal latency to 1.00 ms
Jan 4 20:25:15 homecomp pulseaudio[26848]: [alsa-sink-ca0106] alsa-sink.c: Latency set to 21.33ms
Jan 4 20:25:15 homecomp pulseaudio[26848]: [alsa-sink-ca0106] alsa-sink.c: hwbuf_unused=57352
Jan 4 20:25:15 homecomp pulseaudio[26848]: [alsa-sink-ca0106] alsa-sink.c: setting avail_min=7651
Jan 4 20:25:15 homecomp pulseaudio[26848]: [alsa-sink-ca0106] alsa-sink.c: Latency set to 21.33ms
Jan 4 20:25:15 homecomp pulseaudio[26848]: [alsa-sink-ca0106] alsa-sink.c: hwbuf_unused=57352
Jan 4 20:25:15 homecomp pulseaudio[26848]: [alsa-sink-ca0106] alsa-sink.c: setting avail_min=7651

With the preempt kernel this doesn't happen at all (I grepped the log) and sound is just as good as with pure ALSA.

However, arecord still drops overrun for CA0106. It doesn't do it for PCH (ALC889) though.