[PATCH] Async signal safe TLS accesses
Alexandre Oliva
aoliva@redhat.com
Fri Dec 6 20:35:00 GMT 2013
On Dec 5, 2013, Andrew Hunter <ahh@google.com> wrote:
> On Thu, Nov 28, 2013 at 5:03 PM, Alexandre Oliva <aoliva@redhat.com> wrote:
>> The lock is recursive, but I don't see anything in the patch besides
>> the CAS loops that avoids inconsistent state, particularly in the
>> case of lazy TLS relocation (introduced with GNU2 TLS). Was that not
>> taken into account?
> glibc recursive locks aren't async-signal-safe. We avoid problems
> with reentrancy via dl_mask_all_signals.
But that doesn't avoid *concurrency* problems, does it?
Besides, GNU2 TLS provides for lazy TLS relocation (as mentioned above),
and that most certainly takes the DL lock. I don't see anything in the
patch that would avoid signal-safety problems in that path.
GNU2 will probably be made default on x86 and ARM eventually, and it
already is the default on a number of other recent architectures;
AArch64 is one of them IIRC. So, if this issue was not addressed by
this patch, I would recommend being careful with the messaging: it may
fail to make TLS AS-safe in general. Some qualifier would be necessary
to make the statement correct.
--
Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin America board member
Free Software Evangelist Red Hat Brazil Compiler Engineer
More information about the Libc-alpha
mailing list