This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][ARM] Fix _dl_tlsdesc_resolve_hold to save r0


On 14/10/15 13:17, Joseph Myers wrote:
On Wed, 14 Oct 2015, Szabolcs Nagy wrote:

_dl_tlsdesc_resolve_hold calls into a C function that clobbers r0,
but it assumes the original argument is still in r0 after the call.
This can cause crash in case of concurrent TLS access when TLSDESC
is in use (-mtls-dialect=gnu2).

I presume this issue was user-visible in a release, in which case a bug
should be filed in Bugzilla for it.  Should I take it that it's hard to
write a testcase for this bug that fails reliably without the patch?


ok it's BZ 19129

i have a test that triggers this or the other tlsdesc race
i was about to fix, but it is a bit expensive.

(666 tls objects accessed from 66 threads, 2 versions to
get tlsdesc entries 8byte-unaligned, running 10x triggers
the failure, a smaller test triggers less frequently.)

i'm not sure what's the glibc policy for expensive tests.

and i think -mtls-dialect=gnu2 is not available in all
supported gcc versions.

(the test makes sense on all archs where lazy tls
initialization may be racy).


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]