This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH 0/7] Disable lazy tlsdesc on aarch64 and arm
- From: Szabolcs Nagy <szabolcs dot nagy at arm dot com>
- To: GNU C Library <libc-alpha at sourceware dot org>
- Cc: nd at arm dot com
- Date: Tue, 24 Oct 2017 15:23:40 +0100
- Subject: [PATCH 0/7] Disable lazy tlsdesc on aarch64 and arm
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs dot Nagy at arm dot com;
- Nodisclaimer: True
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
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