[RFC] [PATCH] powerpc: Fix missing barriers in atomic_exchange_and_add_{acq,rel}
Adhemerval Zanella
azanella@linux.vnet.ibm.com
Tue Nov 25 15:07:00 GMT 2014
Hi Torvald,
On 21-10-2014 17:54, Torvald Riegel wrote:
> \
> })
> +#define atomic_exchange_and_add_acq(mem, value) \
> + ({ \
> + __typeof (*(mem)) __result2; \
> + __result2 = atomic_exchange_and_add (mem, value); \
> + atomic_read_barrier (); \
> + __result2;
Although it is not wrong by using a 'atomic_read_barrier' (lwsync), it adds a more
expensive synchronization than required (isync). I would prefer if we use the
already defined __arch_compare_and_exchange_val_[32|64]_[acq|rel] operations on powerpc.
> \
> + })
> +#define atomic_exchange_and_add_rel(mem, value) \
> + ({ \
> + atomic_write_barrier (); \
> + atomic_exchange_and_add (mem, value); \
> + })
>
> #define atomic_increment_val(mem) \
> ({ \
More information about the Libc-alpha
mailing list