[alsa-devel] [PATCH][RFC] alsa-lib: heavy pcm atomics cleanup

Riku Voipio riku.voipio at linaro.org
Wed Feb 12 08:52:57 CET 2014


On 11 February 2014 14:49, Takashi Iwai <tiwai at suse.de> wrote:

> At Fri,  7 Feb 2014 15:38:58 +0200,
> riku.voipio at linaro.org wrote:
> >
> > From: Riku Voipio <riku.voipio at linaro.org>
> >
> > The following patch comes from the realization that at least ARM code
> > for atomics is quite broken and nobody has cared for a decade.
> >
> > A quick dive shows that only snd_atomic_{read,write}_{begin,end}
> > appear to be used widely. These are implemented using wmb/rmb.
> >
> > Only other use of atomic functions is in pcm_meter.c.
> > The #SND_PCM_TYPE_METER plugin type appears rarely, if ever, used.
> > I presume these days anyone who wants a meter/scope will do in pulseaudio
> > layer instead of alsa.
> >
> > It would seem better fit to have pcm_meter in alsa-plugins instead
> > of alsa-lib, but I guess that would be an ABI break...
> >
> > So instead, I'm proposing here
> >
> > 1. Removal of all hand-crafted atomics from iatomic.h apart from
> barriers,
> >    which are used in snd_atomic_{read,write}_{begin,end}.
> >
> > 2. Using __sync_synchronize as the default fallback for barriers. This
> >    has been available since gcc 4.1, so it shouldn't be a problem.
> >
> > 3. Defining the few atomics used by pcm_meter.c withing pcm_meter.c
> >    itself, using gcc atomic builtins[1].
> >
> > 4. Since gcc atomic builtins are available only since gcc 4.7, add a
> check for
> >    that in gcc configure.in, and don't build pcm meter plugin if using
> >    older gcc.
> >
> > The last point has the impact, that if there actually is someone who 1)
> > uses the meter plugin 2) wants to upgrade to 2014 alsa-lib 3) but
> > does not want to use a 2012+ gcc - that someone will be inconvenienced.
> >
> > Finally remove the unneeded configure check for cpu type. We can
> > trust the gcc to set right flags for us.
> >
> > [1] http://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html
> >
> > Signed-off-by: Riku Voipio <riku.voipio at linaro.org>
>
> This looks like a good cleanup.
> I applied it now.
>

Thanks, if you get any issues from this change, please contact me and I'll
try to get it fixed quickly.

Riku


More information about the Alsa-devel mailing list