[PATCH][ARM] Fix _dl_tlsdesc_resolve_hold to save r0

Szabolcs Nagy szabolcs.nagy@arm.com
Wed Oct 14 13:51:00 GMT 2015


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).



More information about the Libc-alpha mailing list