[PATCH] Async signal safe TLS accesses

Rich Felker dalias@aerifal.cx
Fri Dec 6 21:48:00 GMT 2013


On Fri, Dec 06, 2013 at 04:15:37PM -0200, Alexandre Oliva wrote:
> 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.

I would propose just preallocating the descriptors at dlopen time...

Rich



More information about the Libc-alpha mailing list