[PATCH 0/7] Disable lazy tlsdesc on aarch64 and arm

H.J. Lu hjl.tools@gmail.com
Tue Oct 24 14:54:00 GMT 2017


On Tue, Oct 24, 2017 at 7:23 AM, Szabolcs Nagy <szabolcs.nagy@arm.com> wrote:
> Reorganized the aarch64 patches a bit and added patches for arm too.
>
> The reason behind this change is the data race BZ #18034 on aarch64
> and equivalent BZ #18572 on arm.  The aarch64 bug was fixed by adding
> synchronization but that causes significant performance regression
> of tls access. Lazy initialization of tlsdesc was never justified,
> so i'm proposing to remove it on weakly ordered memory architectures.
> (For consistency i think it should be removed on x86 too, but i don't
> have patches for that.)
>
> Szabolcs Nagy (7):
>   Mark lazy tlsdesc helper functions unused to avoid warnings
>   aarch64: Disable lazy symbol binding of TLSDESC
>   aarch64: Remove barriers from TLS descriptor functions
>   [BZ #17078] arm: remove prelinker support for R_ARM_TLS_DESC
>   [BZ #18572] arm: Disable lazy initialization of tlsdesc entries
>   arm: Remove unnecessary volatile qualifier
>   arm: Remove lazy tlsdesc initialization related code
>
>

TLSDESC is very rarely used/tested.   Should we remove lazy binding
TLSDESC for all targets? It will simplify TLSDESC code.

-- 
H.J.



More information about the Libc-alpha mailing list