diff options
author | Mike Pagano <mpagano@gentoo.org> | 2024-07-27 18:47:30 -0400 |
---|---|---|
committer | Mike Pagano <mpagano@gentoo.org> | 2024-07-27 18:47:30 -0400 |
commit | 0877aff178386e9c1abb95779c332e460df7e666 (patch) | |
tree | f18ea639a978291446211bec42a2fde611fe10b8 | |
parent | Linux patch 6.9.12 (diff) | |
download | linux-patches-6.9.tar.gz linux-patches-6.9.tar.bz2 linux-patches-6.9.zip |
Update cpu optimixation patch. use=experiemental6.9
Signed-off-by: Mike Pagano <mpagano@gentoo.org>
-rw-r--r-- | 5010_enable-cpu-optimizations-universal.patch | 88 |
1 files changed, 51 insertions, 37 deletions
diff --git a/5010_enable-cpu-optimizations-universal.patch b/5010_enable-cpu-optimizations-universal.patch index 75c48bf1..b5382da3 100644 --- a/5010_enable-cpu-optimizations-universal.patch +++ b/5010_enable-cpu-optimizations-universal.patch @@ -1,4 +1,4 @@ -From 71dd30c3e2ab2852b0290ae1f34ce1c7f8655040 Mon Sep 17 00:00:00 2001 +rom 86977b5357d9212d57841bc325e80f43081bb333 Mon Sep 17 00:00:00 2001 From: graysky <therealgraysky@proton.me> Date: Wed, 21 Feb 2024 08:38:13 -0500 @@ -32,8 +32,9 @@ CPU-specific microarchitectures include: • AMD Family 15h (Excavator) • AMD Family 17h (Zen) • AMD Family 17h (Zen 2) -• AMD Family 19h (Zen 3)† -• AMD Family 19h (Zen 4)§ +• AMD Family 19h (Zen 3)** +• AMD Family 19h (Zen 4)‡ +• AMD Family 1Ah (Zen 5)§ • Intel Silvermont low-power processors • Intel Goldmont low-power processors (Apollo Lake and Denverton) • Intel Goldmont Plus low-power processors (Gemini Lake) @@ -50,18 +51,20 @@ CPU-specific microarchitectures include: • Intel Xeon (Cascade Lake) • Intel Xeon (Cooper Lake)* • Intel 3rd Gen 10nm++ i3/i5/i7/i9-family (Tiger Lake)* -• Intel 4th Gen 10nm++ Xeon (Sapphire Rapids)‡ -• Intel 11th Gen i3/i5/i7/i9-family (Rocket Lake)‡ -• Intel 12th Gen i3/i5/i7/i9-family (Alder Lake)‡ -• Intel 13th Gen i3/i5/i7/i9-family (Raptor Lake)§ -• Intel 14th Gen i3/i5/i7/i9-family (Meteor Lake)§ -• Intel 5th Gen 10nm++ Xeon (Emerald Rapids)§ +• Intel 4th Gen 10nm++ Xeon (Sapphire Rapids)† +• Intel 11th Gen i3/i5/i7/i9-family (Rocket Lake)† +• Intel 12th Gen i3/i5/i7/i9-family (Alder Lake)† +• Intel 13th Gen i3/i5/i7/i9-family (Raptor Lake)‡ +• Intel 14th Gen i3/i5/i7/i9-family (Meteor Lake)‡ +• Intel 5th Gen 10nm++ Xeon (Emerald Rapids)‡ Notes: If not otherwise noted, gcc >=9.1 is required for support. *Requires gcc >=10.1 or clang >=10.0 - †Required gcc >=10.3 or clang >=12.0 - ‡Required gcc >=11.1 or clang >=12.0 - §Required gcc >=13.0 or clang >=15.0.5 + **Required gcc >=10.3 or clang >=12.0 + †Required gcc >=11.1 or clang >=12.0 + ‡Required gcc >=13.0 or clang >=15.0.5 + §Required gcc >=14.1 or clang >=19.0? + It also offers to compile passing the 'native' option which, "selects the CPU to generate code for at compilation time by determining the processor type of @@ -101,13 +104,13 @@ REFERENCES 4. https://github.com/graysky2/kernel_gcc_patch/issues/15 5. http://www.linuxforge.net/docs/linux/linux-gcc.php --- - arch/x86/Kconfig.cpu | 424 ++++++++++++++++++++++++++++++-- - arch/x86/Makefile | 44 +++- - arch/x86/include/asm/vermagic.h | 74 ++++++ - 3 files changed, 526 insertions(+), 16 deletions(-) + arch/x86/Kconfig.cpu | 432 ++++++++++++++++++++++++++++++-- + arch/x86/Makefile | 45 +++- + arch/x86/include/asm/vermagic.h | 76 ++++++ + 3 files changed, 537 insertions(+), 16 deletions(-) diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu -index 2a7279d80460a..6924a0f5f1c26 100644 +index 2a7279d80460a..55941c31ade35 100644 --- a/arch/x86/Kconfig.cpu +++ b/arch/x86/Kconfig.cpu @@ -157,7 +157,7 @@ config MPENTIUM4 @@ -128,7 +131,7 @@ index 2a7279d80460a..6924a0f5f1c26 100644 depends on X86_32 help Select this for an AMD Athlon K7-family processor. Enables use of -@@ -173,12 +173,106 @@ config MK7 +@@ -173,12 +173,114 @@ config MK7 flags to GCC. config MK8 @@ -233,10 +236,18 @@ index 2a7279d80460a..6924a0f5f1c26 100644 + + Enables -march=znver4 + ++config MZEN5 ++ bool "AMD Zen 5" ++ depends on (CC_IS_GCC && GCC_VERSION >= 141000) || (CC_IS_CLANG && CLANG_VERSION >= 180000) ++ help ++ Select this for AMD Family 19h Zen 5 processors. ++ ++ Enables -march=znver5 ++ config MCRUSOE bool "Crusoe" depends on X86_32 -@@ -270,7 +364,7 @@ config MPSC +@@ -270,7 +372,7 @@ config MPSC in /proc/cpuinfo. Family 15 is an older Xeon, Family 6 a newer one. config MCORE2 @@ -245,7 +256,7 @@ index 2a7279d80460a..6924a0f5f1c26 100644 help Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and -@@ -278,6 +372,8 @@ config MCORE2 +@@ -278,6 +380,8 @@ config MCORE2 family in /proc/cpuinfo. Newer ones have 6 and older ones 15 (not a typo) @@ -254,7 +265,7 @@ index 2a7279d80460a..6924a0f5f1c26 100644 config MATOM bool "Intel Atom" help -@@ -287,6 +383,212 @@ config MATOM +@@ -287,6 +391,212 @@ config MATOM accordingly optimized code. Use a recent GCC with specific Atom support in order to fully benefit from selecting this option. @@ -467,7 +478,7 @@ index 2a7279d80460a..6924a0f5f1c26 100644 config GENERIC_CPU bool "Generic-x86-64" depends on X86_64 -@@ -294,6 +596,50 @@ config GENERIC_CPU +@@ -294,6 +604,50 @@ config GENERIC_CPU Generic x86-64 CPU. Run equally well on all x86-64 CPUs. @@ -518,14 +529,14 @@ index 2a7279d80460a..6924a0f5f1c26 100644 endchoice config X86_GENERIC -@@ -318,9 +664,17 @@ config X86_INTERNODE_CACHE_SHIFT +@@ -318,9 +672,17 @@ config X86_INTERNODE_CACHE_SHIFT config X86_L1_CACHE_SHIFT int default "7" if MPENTIUM4 || MPSC - default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU + default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || MK8SSE3 || MK10 \ + || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER \ -+ || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MNEHALEM || MWESTMERE || MSILVERMONT \ ++ || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MZEN5 || MNEHALEM || MWESTMERE || MSILVERMONT \ + || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL \ + || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE \ + || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE \ @@ -538,7 +549,7 @@ index 2a7279d80460a..6924a0f5f1c26 100644 config X86_F00F_BUG def_bool y -@@ -332,15 +686,27 @@ config X86_INVD_BUG +@@ -332,15 +694,27 @@ config X86_INVD_BUG config X86_ALIGNMENT_16 def_bool y @@ -561,7 +572,7 @@ index 2a7279d80460a..6924a0f5f1c26 100644 + depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM \ + || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX \ + || MCORE2 || MATOM || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER \ -+ || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MNEHALEM \ ++ || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MZEN5 || MNEHALEM \ + || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE \ + || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE \ + || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE \ @@ -569,7 +580,7 @@ index 2a7279d80460a..6924a0f5f1c26 100644 # # P6_NOPs are a relatively minor optimization that require a family >= -@@ -356,11 +722,22 @@ config X86_USE_PPRO_CHECKSUM +@@ -356,11 +730,22 @@ config X86_USE_PPRO_CHECKSUM config X86_P6_NOP def_bool y depends on X86_64 @@ -586,7 +597,7 @@ index 2a7279d80460a..6924a0f5f1c26 100644 + depends on (MWINCHIP3D || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM \ + || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 \ + || MGEODE_LX || MCORE2 || MATOM || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER \ -+ || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MNEHALEM \ ++ || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MZEN5 || MNEHALEM \ + || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL \ + || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE \ + || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS \ @@ -594,7 +605,7 @@ index 2a7279d80460a..6924a0f5f1c26 100644 config X86_HAVE_PAE def_bool y -@@ -368,18 +745,37 @@ config X86_HAVE_PAE +@@ -368,18 +753,37 @@ config X86_HAVE_PAE config X86_CMPXCHG64 def_bool y @@ -602,7 +613,7 @@ index 2a7279d80460a..6924a0f5f1c26 100644 + depends on X86_PAE || X86_64 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 \ + || M586TSC || M586MMX || MATOM || MGEODE_LX || MGEODEGX1 || MK6 || MK7 || MK8 || MK8SSE3 || MK10 \ + || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN \ -+ || MZEN2 || MZEN3 || MZEN4 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS \ ++ || MZEN2 || MZEN3 || MZEN4 || MZEN5 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS \ + || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE \ + || MICELAKE || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE \ + || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS || MNATIVE_INTEL || MNATIVE_AMD @@ -615,7 +626,7 @@ index 2a7279d80460a..6924a0f5f1c26 100644 + depends on (MK8 || MK7 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 \ + || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX || MK8SSE3 || MK10 \ + || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR \ -+ || MZEN || MZEN2 || MZEN3 || MZEN4 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT \ ++ || MZEN || MZEN2 || MZEN3 || MZEN4 || MZEN5 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT \ + || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX \ + || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS \ + || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS || MNATIVE_INTEL || MNATIVE_AMD) @@ -627,7 +638,7 @@ index 2a7279d80460a..6924a0f5f1c26 100644 + default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 \ + || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCORE2 || MK7 || MK8 || MK8SSE3 \ + || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER \ -+ || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MNEHALEM || MWESTMERE || MSILVERMONT \ ++ || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MZEN5 || MNEHALEM || MWESTMERE || MSILVERMONT \ + || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL \ + || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE \ + || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MRAPTORLAKE \ @@ -636,10 +647,10 @@ index 2a7279d80460a..6924a0f5f1c26 100644 default "4" diff --git a/arch/x86/Makefile b/arch/x86/Makefile -index da8f3caf27815..c873d10df15d0 100644 +index 5ab93fcdd691d..ac203b599befd 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile -@@ -152,8 +152,48 @@ else +@@ -156,8 +156,49 @@ else # FIXME - should be integrated in Makefile.cpu (Makefile_32.cpu) cflags-$(CONFIG_MK8) += -march=k8 cflags-$(CONFIG_MPSC) += -march=nocona @@ -658,6 +669,7 @@ index da8f3caf27815..c873d10df15d0 100644 + cflags-$(CONFIG_MZEN2) += -march=znver2 + cflags-$(CONFIG_MZEN3) += -march=znver3 + cflags-$(CONFIG_MZEN4) += -march=znver4 ++ cflags-$(CONFIG_MZEN5) += -march=znver5 + cflags-$(CONFIG_MNATIVE_INTEL) += -march=native + cflags-$(CONFIG_MNATIVE_AMD) += -march=native + cflags-$(CONFIG_MATOM) += -march=bonnell @@ -691,7 +703,7 @@ index da8f3caf27815..c873d10df15d0 100644 KBUILD_CFLAGS += $(cflags-y) diff --git a/arch/x86/include/asm/vermagic.h b/arch/x86/include/asm/vermagic.h -index 75884d2cdec37..02c1386eb653e 100644 +index 75884d2cdec37..7acca9b5a9d56 100644 --- a/arch/x86/include/asm/vermagic.h +++ b/arch/x86/include/asm/vermagic.h @@ -17,6 +17,54 @@ @@ -749,7 +761,7 @@ index 75884d2cdec37..02c1386eb653e 100644 #elif defined CONFIG_MATOM #define MODULE_PROC_FAMILY "ATOM " #elif defined CONFIG_M686 -@@ -35,6 +83,32 @@ +@@ -35,6 +83,34 @@ #define MODULE_PROC_FAMILY "K7 " #elif defined CONFIG_MK8 #define MODULE_PROC_FAMILY "K8 " @@ -779,9 +791,11 @@ index 75884d2cdec37..02c1386eb653e 100644 +#define MODULE_PROC_FAMILY "ZEN3 " +#elif defined CONFIG_MZEN4 +#define MODULE_PROC_FAMILY "ZEN4 " ++#elif defined CONFIG_MZEN5 ++#define MODULE_PROC_FAMILY "ZEN5 " #elif defined CONFIG_MELAN #define MODULE_PROC_FAMILY "ELAN " #elif defined CONFIG_MCRUSOE -- -2.43.2 +2.45.0 |