From ce5a30679c5d4cb344cf5e1e67f7da5358451a91 Mon Sep 17 00:00:00 2001 From: Jiamei Xie Date: Mon, 22 Dec 2025 11:52:52 +0800 Subject: [PATCH] Set Prefer_No_AVX512 flag for hygon platform Signed-off-by: Jiamei Xie --- ...er_No_AVX512-flag-for-hygon-platform.patch | 37 +++++++++++++++++++ glibc.spec | 2 + 2 files changed, 39 insertions(+) create mode 100644 glibc-Set-Prefer_No_AVX512-flag-for-hygon-platform.patch diff --git a/glibc-Set-Prefer_No_AVX512-flag-for-hygon-platform.patch b/glibc-Set-Prefer_No_AVX512-flag-for-hygon-platform.patch new file mode 100644 index 0000000..943d555 --- /dev/null +++ b/glibc-Set-Prefer_No_AVX512-flag-for-hygon-platform.patch @@ -0,0 +1,37 @@ +From a35a2ec5887de5e562d098840379a5ebc2611a10 Mon Sep 17 00:00:00 2001 +From: Jiamei Xie +Date: Wed, 10 Dec 2025 14:51:20 +0800 +Subject: [PATCH] Set Prefer_No_AVX512 flag for hygon platform + +Benchmarks indicate avx2 can be more profitable on Hygon hardware +than AVX512. So add Prefer_No_AVX512 to make it run with avx2. + +Signed-off-by: Jiamei Xie +--- + sysdeps/x86/cpu-features.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c +index c72dc2f3..80354a33 100644 +--- a/sysdeps/x86/cpu-features.c ++++ b/sysdeps/x86/cpu-features.c +@@ -561,6 +561,16 @@ init_cpu_features (struct cpu_features *cpu_features) + + update_usable (cpu_features); + ++ if (ebx == 0x6f677948 && ecx == 0x656e6975 && edx == 0x6e65476e) { ++ if (model == 0x7) ++ { ++ /* Benchmarks indicate avx2 can be more profitable on Hygon ++ hardware than AVX512. */ ++ cpu_features->preferred[index_arch_Prefer_No_AVX512] ++ |= bit_arch_Prefer_No_AVX512; ++ } ++ } ++ + ecx = cpu_features->features[COMMON_CPUID_INDEX_1].cpuid.ecx; + + if (CPU_FEATURE_USABLE_P (cpu_features, AVX)) +-- +2.17.1 + diff --git a/glibc.spec b/glibc.spec index 6480960..ba2de8b 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1326,6 +1326,7 @@ Patch10019: 10019-glibc-2.28-Add-macro-defination-of-lasx-lsx-and-fcc-.patch Patch10020: 10020-glibc-2.28-Refactor-code-and-fix-bug-in-_dl_runtime_.patch Patch10021: 10021-glibc-2.28-Remove-useless-IS_LA-264-364-464-and-IS_L.patch Patch10022: 10022-glibc-2.28-Use-RTLD_SUPPORT_-LSX-LASX-to-choose-_dl_.patch +Patch10023: glibc-Set-Prefer_No_AVX512-flag-for-hygon-platform.patch ############################################################################## # Continued list of core "glibc" package information: ############################################################################## @@ -2999,6 +3000,7 @@ fi - Add Hygon Support (Jing Li) - Sync loongarch64 code to lnd.36. (fanpeng@loongson.cn) - SPECS: define glibc_ldso for LoongArch. (fanpeng@loongson.cn) +- Set Prefer_No_AVX512 flag for hygon platform (xiejiamei@hygon.cn) * Thu Nov 20 2025 Arjun Shankar - 2.28-251.27 - Fix a segmentation fault in multi-threaded multi-namespace programs using -- Gitee