[PATCH v2 4/6] i386: Remove bogus THREAD_ATOMIC_* macros
Siddhesh Poyarekar
siddhesh@gotplt.org
Sat Dec 29 02:24:00 GMT 2018
On 28/12/18 6:32 AM, Adhemerval Zanella wrote:
> The x86 defines optimized THREAD_ATOMIC_* macros where reference always
> the current thread instead of the one indicated by input 'descr' argument.
> It work as long the input is the self thread pointer, however it generates
> wrong code is the semantic is to set a bit atomicialy from another thread.
"if the semantic is to set a bit atomically"
>
> This is not an issue for current GLIBC usage, however the new cancellation
> code expects that some synchronization code to atomically set bits from
> different threads.
>
> If some usage indeed proves to be a hotspot we can add an extra macro
> with a more descriptive name (THREAD_ATOMIC_BIT_SET_SELF for instance)
> where i386 might optimize it.
>
> Checked on i686-linux-gnu.
>
> * sysdeps/i686/nptl/tls.h (THREAD_ATOMIC_CMPXCHG_VAL,
> THREAD_ATOMIC_AND, THREAD_ATOMIC_BIT_SET): Remove macros.
OK with that nit.
Siddhesh
More information about the Libc-alpha
mailing list