commit:     0877aff178386e9c1abb95779c332e460df7e666
Author:     Mike Pagano <mpagano <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 27 22:47:30 2024 +0000
Commit:     Mike Pagano <mpagano <AT> gentoo <DOT> org>
CommitDate: Sat Jul 27 22:47:30 2024 +0000
URL:        https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=0877aff1

Update cpu optimixation patch. use=experiemental

Signed-off-by: Mike Pagano <mpagano <AT> gentoo.org>

 5010_enable-cpu-optimizations-universal.patch | 88 ++++++++++++++++-----------
 1 file 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 <[email protected]>
 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
@@ -232,11 +235,19 @@ index 2a7279d80460a..6924a0f5f1c26 100644
 +        Select this for AMD Family 19h Zen 4 processors.
 +
 +        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
 

Reply via email to