[alsa-devel] [PATCH 0/3] ALSA: control: fix issue of concurrent access of ELEM_READ/ELEM_WRITE

Takashi Iwai tiwai at suse.de
Sun Aug 20 09:41:45 CEST 2017


On Sun, 20 Aug 2017 06:49:05 +0200,
Takashi Sakamoto wrote:
> 
> Hi,
> 
> This patchset is to fix an issue of concurrent access to operate
> ELEM_READ/ELEM_WRITE, which I found in my previous patch:
> 
> [PATCH 0/5] ALSA: control: fix issue of concurrent access for TLV operations
> http://mailman.alsa-project.org/pipermail/alsa-devel/2017-August/123561.html
> 
> In current implementation of ALSA control core, concurrent accesses with 
> ELEM_READ/ELEM_WRITE are managed with counting semaphore, however lock
> acquisition for both of these operations is a type of 'read'. In this case,
> ELEM_READ can be going to be handled for a target element when ELEM_WRITE
> is handled for the element. A purpose of the ELEM_WRITE operation is to
> change state of the target element. It's better to guarantee that
> concurrent accesses to the same element with these two operations are
> properly managed.
> 
> For the above aim, this patchset uses the counting semaphore as 'write'
> lock for ELEM_WRITE operation. But I can imagine an discussion to add
> 'per-element' lock for this issue. In a comment of patch 03, I investigate
> it. Please refer to it.
> 
> Takashi Sakamoto (3):
>   ALSA: control: queue events within locking of controls_rwsem for
>     ELEM_WRITE operation
>   ALSA: control: code refactoring for ELEM_READ/ELEM_WRITE operations
>   ALSA: control: use counting semaphore as write lock for ELEM_WRITE
>     operation

Applied all three patches.  Thanks.


Takashi


More information about the Alsa-devel mailing list