[PATCH] Fix synchronization of TPP min/max priorities.

Torvald Riegel triegel@redhat.com
Tue Nov 25 18:55:00 GMT 2014


This fixes a synchronization bug in nptl/tpp.c and consumers.  The
previous code attempts to do at-least-once initialization using one of
the initialized values as flag for initialization and an
atomic_write_barrier -- but none of the readers had a matching
atomic_read_barrier.  This is not correct on weak-memory-model
architectures, or if the compiler reorders.

The new scheme fixes the synchronization and avoids the acquire barrier
by treating each of the two values as separate at-least-once initialized
values.  See the code comments for details.

No regressions on x86_64.  OK to commit?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: atomics-fixes-tpp.patch
Type: text/x-patch
Size: 9033 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20141125/f419a74c/attachment.bin>


More information about the Libc-alpha mailing list