[PATCH 0/7] Disable lazy tlsdesc on aarch64 and arm
Szabolcs Nagy
szabolcs.nagy@arm.com
Tue Oct 24 14:23:00 GMT 2017
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
elf/tlsdeschtab.h | 2 +
sysdeps/aarch64/dl-machine.h | 23 +++--
sysdeps/aarch64/dl-tlsdesc.S | 203 -------------------------------------------
sysdeps/aarch64/dl-tlsdesc.h | 9 --
sysdeps/aarch64/tlsdesc.c | 127 +--------------------------
sysdeps/arm/dl-machine.h | 59 ++++---------
sysdeps/arm/dl-tlsdesc.S | 84 ------------------
sysdeps/arm/dl-tlsdesc.h | 4 +-
sysdeps/arm/tlsdesc.c | 119 +------------------------
9 files changed, 35 insertions(+), 595 deletions(-)
--
2.11.0
More information about the Libc-alpha
mailing list