summaryrefslogtreecommitdiff
path: root/sysdeps/s390/nptl/bits/struct_mutex.h
diff options
context:
space:
mode:
authorStefan Liebler <stli@linux.ibm.com>2025-10-28 15:21:18 +0100
committerStefan Liebler <stli@linux.ibm.com>2025-11-18 14:21:13 +0100
commitb9579342c68baf0beacfb4e93b9a6a325d3f9527 (patch)
treeb2912881442af3f3ad2378633f0bb3e4a970284d /sysdeps/s390/nptl/bits/struct_mutex.h
parent5029b63280b505467d3452e91a1c51705e34ed35 (diff)
Remove support for lock elision.
The support for lock elision was already deprecated with glibc 2.42: commit 77438db8cfa6ee66b3906230156bdae11c49a195 "Mark support for lock elision as deprecated." See also discussions: https://sourceware.org/pipermail/libc-alpha/2025-July/168492.html This patch removes the architecture specific support for lock elision for x86, powerpc and s390 by removing the elision-conf.h, elision-conf.c, elision-lock.c, elision-timed.c, elision-unlock.c, elide.h, htm.h/hle.h files. Those generic files are also removed. The architecture specific structures are adjusted and the elision fields are marked as unused. See struct_mutex.h files. Furthermore in struct_rwlock.h, the leftover __rwelision was also removed. Those were originally removed with commit 0377a7fde6dfcc078dda29a1225d7720a0931357 "nptl: Remove rwlock elision definitions" and by chance reintroduced with commit 7df8af43ad1cd8ce527444de50bee6f35eebe071 "nptl: Add struct_rwlock.h" The common code (e.g. the pthread_mutex-files) are changed back to the time before lock elision was introduced with the x86-support: - commit 1cdbe579482c07e9f4bb3baa4864da2d3e7eb837 "Add the low level infrastructure for pthreads lock elision with TSX" - commit b023e4ca99f5e81f90d87d23cd267ef2abd2388c "Add new internal mutex type flags for elision." - commit 68cc29355f3334c7ad18f648ff9a6383a0916d23 "Add minimal test suite changes for elision enabled kernels" - commit e8c659d74e011346785355eeef03b7fb6f533c61 "Add elision to pthread_mutex_{try,timed,un}lock" - commit 49186d21ef2d87986bccaf0a7c45c48c91b265f3 "Disable elision for any pthread_mutexattr_settype call" - commit 1717da59aed9612becd56aaa1249aac695af4c8a "Add a configure option to enable lock elision and disable by default" Elision is removed also from the tunables, the initialization part, the pretty-printers and the manual. Some extra handling in the testsuite is removed as well as the full tst-mutex10 testcase, which tested a race while enabling lock elision. I've also searched the code for "elision", "elide", "transaction" and e.g. cleaned some comments. I've run the testsuite on x86_64 and s390x and run the build-many-glibcs.py script. Thanks to Sachin Monga, this patch is also tested on powerpc. A NEWS entry also mentions the removal. Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
Diffstat (limited to 'sysdeps/s390/nptl/bits/struct_mutex.h')
-rw-r--r--sysdeps/s390/nptl/bits/struct_mutex.h11
1 files changed, 5 insertions, 6 deletions
diff --git a/sysdeps/s390/nptl/bits/struct_mutex.h b/sysdeps/s390/nptl/bits/struct_mutex.h
index af0e2e997e..5bc66d4a1e 100644
--- a/sysdeps/s390/nptl/bits/struct_mutex.h
+++ b/sysdeps/s390/nptl/bits/struct_mutex.h
@@ -32,7 +32,7 @@ struct __pthread_mutex_s
int __kind;
#if __WORDSIZE == 64
short __spins;
- short __elision;
+ short __unused;
__pthread_list_t __list;
# define __PTHREAD_MUTEX_HAVE_PREV 1
#else
@@ -41,11 +41,10 @@ struct __pthread_mutex_s
{
struct
{
- short __espins;
- short __elision;
- } _d;
-# define __spins _d.__espins
-# define __elision _d.__elision
+ short __data_spins;
+ short __data_unused;
+ } __data;
+# define __spins __data.__data_spins
__pthread_slist_t __list;
};
# define __PTHREAD_MUTEX_HAVE_PREV 0