forked from rpms/glibc
234a1c0ad2
* Tue Feb 1 2022 Florian Weimer <fweimer@redhat.com> - 2.34-24 - Sync with upstream branch release/2.34/master, commit 008003dc6e83439c5e04a744b7fd8197df19096e: - tst-socket-timestamp-compat.c: Check __TIMESIZE [BZ #28837] - Linux: Only generate 64 bit timestamps for 64 bit time_t recvmsg/recvmmsg - linux: Fix ancillary 64-bit time timestamp conversion (BZ #28349, BZ#28350) - support: Add support_socket_so_timestamp_time64 * Tue Feb 1 2022 Florian Weimer <fweimer@redhat.com> - 2.34-23 - Align with glibc 2.35 version of C.UTF-8 * Tue Feb 1 2022 Florian Weimer <fweimer@redhat.com> - 2.34-22 - Sync with upstream branch release/2.34/master, commit aa601d024424c40ae9a69b0c4e394a70ea0570c8: - x86: Use CHECK_FEATURE_PRESENT to check HLE [BZ #27398] - x86: Filter out more Intel CPUs for TSX [BZ #27398] - Fix glibc 2.34 ABI omission (missing GLIBC_2.34 in dynamic loader) - x86: Fix __wcsncmp_evex in strcmp-evex.S [BZ# 28755] - x86: Fix __wcsncmp_avx2 in strcmp-avx2.S [BZ# 28755] Resolves: #2037056
63 lines
2.1 KiB
Diff
63 lines
2.1 KiB
Diff
commit b952c25dc7adf0684c53ad72d1d667da0348c929
|
|
Author: H.J. Lu <hjl.tools@gmail.com>
|
|
Date: Fri Jan 14 14:48:01 2022 -0800
|
|
|
|
x86: Black list more Intel CPUs for TSX [BZ #27398]
|
|
|
|
Disable TSX and enable RTM_ALWAYS_ABORT for Intel CPUs listed in:
|
|
|
|
https://www.intel.com/content/www/us/en/support/articles/000059422/processors.html
|
|
|
|
This fixes BZ #27398.
|
|
|
|
Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com>
|
|
(cherry picked from commit 1e000d3d33211d5a954300e2a69b90f93f18a1a1)
|
|
|
|
diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c
|
|
index 645bba63147f6589..de4e3c3b7258120d 100644
|
|
--- a/sysdeps/x86/cpu-features.c
|
|
+++ b/sysdeps/x86/cpu-features.c
|
|
@@ -507,11 +507,39 @@ init_cpu_features (struct cpu_features *cpu_features)
|
|
break;
|
|
}
|
|
|
|
- /* Disable TSX on some Haswell processors to avoid TSX on kernels that
|
|
- weren't updated with the latest microcode package (which disables
|
|
- broken feature by default). */
|
|
+ /* Disable TSX on some processors to avoid TSX on kernels that
|
|
+ weren't updated with the latest microcode package (which
|
|
+ disables broken feature by default). */
|
|
switch (model)
|
|
{
|
|
+ case 0x55:
|
|
+ if (stepping <= 5)
|
|
+ goto disable_tsx;
|
|
+ break;
|
|
+ case 0x8e:
|
|
+ /* NB: Although the errata documents that for model == 0x8e,
|
|
+ only 0xb stepping or lower are impacted, the intention of
|
|
+ the errata was to disable TSX on all client processors on
|
|
+ all steppings. Include 0xc stepping which is an Intel
|
|
+ Core i7-8665U, a client mobile processor. */
|
|
+ case 0x9e:
|
|
+ if (stepping > 0xc)
|
|
+ break;
|
|
+ /* Fall through. */
|
|
+ case 0x4e:
|
|
+ case 0x5e:
|
|
+ {
|
|
+ /* Disable Intel TSX and enable RTM_ALWAYS_ABORT for
|
|
+ processors listed in:
|
|
+
|
|
+https://www.intel.com/content/www/us/en/support/articles/000059422/processors.html
|
|
+ */
|
|
+disable_tsx:
|
|
+ CPU_FEATURE_UNSET (cpu_features, HLE);
|
|
+ CPU_FEATURE_UNSET (cpu_features, RTM);
|
|
+ CPU_FEATURE_SET (cpu_features, RTM_ALWAYS_ABORT);
|
|
+ }
|
|
+ break;
|
|
case 0x3f:
|
|
/* Xeon E7 v3 with stepping >= 4 has working TSX. */
|
|
if (stepping >= 4)
|