[alsa-devel] Proposal for more reliable audio DMA.

Mark Brown broonie at opensource.wolfsonmicro.com
Wed Jun 24 18:28:23 CEST 2009

On 24 Jun 2009, at 17:07, Jon Smirl <jonsmirl at gmail.com> wrote:

> Trying to directly expose the ring buffer to the app seems like a good
> way to avoid a copy, but it isn't achieving that. pulse is not
> decoding audio straight into the ring buffer, it decodes first and
> then copies into the buffer. Pulse is using the timers to estimate the
> destination for the copy.  Move this copy down into the drivers, the
> drivers know the correct destination for the copy.

Pulse isn't just doing straight playback, a large part of what it's  
there for is to do software mixing. When you have multiple sources  
active pulse is going to be forced to do the copy as part of the  
mixing process so putting that bit of the buffer management in kernel  
won't help in the way you think it does. Part of what's going on here  
is that the kernel code is trying to give userspace access to the data  
for as long as possible.

More information about the Alsa-devel mailing list