[alsa-devel] Question on wait_for_avail function

Patrick Lai plai at codeaurora.org
Thu Jun 6 08:25:15 CEST 2013

+ << Jaroslav >>
On 6/5/2013 2:17 AM, Clemens Ladisch wrote:
> gsantosh at codeaurora.org wrote:
>> 2) HAL issues pause in parallel to the write
> This is illegal.
> <http://www.alsa-project.org/main/index.php/SMP_Design> says:
> | The use of returned handles [such as snd_pcm_t*] must be serialized in
> | the application using own locking scheme.
> If you want to issue a pause while waiting for data to be written, use
> non-blocking writes.

Based on my understanding of SMP_Design and response above, pause and 
write to same
PCM device are expected to be serialized. However, my interpretation of
following patch is that pause and stop are expected to wakes up process
waiting in pcm_lib.c wait_for_avail(). It seems to give me the
indication that multiple threads acting on same PCM device is expected.

ALSA: pcm_core: Fix wake_up() optimization

This change fixes the "ALSA: pcm_lib - optimize wake_up() calls for PCM
I/O" commit. New sleeping queue is introduced to separate user space
and kernel space wake_ups. runtime->nowake is renamed to twake
(transfer wake).

Jaroslav: Can you share your thought as you are author of this patch?

> Regards,
> Clemens
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.

More information about the Alsa-devel mailing list