From f8be71ca8cdd77386cad8fe098dddf4204914be3 Mon Sep 17 00:00:00 2001 From: Carlos O'Donell Date: Sat, 27 Sep 2014 12:31:11 -0400 Subject: [PATCH] Resolves: #1146967 - Disable more Intel TSX usage in rwlocks (#1146967). Conflicts: glibc.spec --- glibc-disable-rwlock-elision.patch | 22 ++++++++++++++++++++++ glibc.spec | 7 +++++++ 2 files changed, 29 insertions(+) create mode 100644 glibc-disable-rwlock-elision.patch diff --git a/glibc-disable-rwlock-elision.patch b/glibc-disable-rwlock-elision.patch new file mode 100644 index 0000000..b782da0 --- /dev/null +++ b/glibc-disable-rwlock-elision.patch @@ -0,0 +1,22 @@ +diff -urN glibc-2.20.mod/sysdeps/unix/sysv/linux/x86/elision-conf.c glibc-2.20/sysdeps/unix/sysv/linux/x86/elision-conf.c +--- glibc-2.20.mod/sysdeps/unix/sysv/linux/x86/elision-conf.c 2014-09-27 00:25:46.443462345 -0400 ++++ glibc-2.20/sysdeps/unix/sysv/linux/x86/elision-conf.c 2014-09-27 00:29:53.586615813 -0400 +@@ -62,12 +62,16 @@ + char **argv __attribute__ ((unused)), + char **environ) + { +- __elision_available = HAS_RTM; + #ifdef ENABLE_LOCK_ELISION ++ __elision_available = HAS_RTM; + __pthread_force_elision = __libc_enable_secure ? 0 : __elision_available; +-#endif + if (!HAS_RTM) + __elision_aconf.retry_try_xbegin = 0; /* Disable elision on rwlocks */ ++#else ++ __elision_available = 0; ++ __pthread_force_elision = 0; ++ __elision_aconf.retry_try_xbegin = 0; ++#endif + } + + #ifdef SHARED diff --git a/glibc.spec b/glibc.spec index eadca57..b5ea3ff 100644 --- a/glibc.spec +++ b/glibc.spec @@ -193,6 +193,9 @@ Patch0050: %{name}-rh1124987.patch # Fix the tst-strtod-round.c test build failure. Patch0051: %{name}-stdlib-tst-strtod-round.c-Fix-build-on-ARM.patch +# Disable rwlock elision if --enable-lock-elision is not used. +Patch0052: %{name}-disable-rwlock-elision.patch + ############################################################################## # # Patches from upstream @@ -565,6 +568,7 @@ package or when debugging this package. %patch2034 -p1 %patch0050 -p1 %patch0051 -p1 +%patch0052 -p1 ############################################################################## # %%prep - Additional prep required... @@ -1722,6 +1726,9 @@ rm -f *.filelist* %endif %changelog +* Tue Sep 30 2014 Siddhesh Poyarekar - 2.20.90-6 +- Disable more Intel TSX usage in rwlocks (#1146967). + * Fri Sep 26 2014 Carlos O'Donell - 2.20.90-5 - Disable lock elision support for Intel hardware until microcode updates can be done in early bootup (#1146967).