From 9d35826fa7670fb813abd49f9693477169a57e90 Mon Sep 17 00:00:00 2001 From: Paul Bastide Date: Mon, 3 Nov 2025 13:56:23 -0500 Subject: [PATCH 1/3] fix: openshift-node-performance now has a default platform agnostic fallback Signed-off-by: Paul Bastide --- assets/performanceprofile/tuned/openshift-node-performance-- | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 assets/performanceprofile/tuned/openshift-node-performance-- diff --git a/assets/performanceprofile/tuned/openshift-node-performance-- b/assets/performanceprofile/tuned/openshift-node-performance-- new file mode 100644 index 000000000..62bfe8136 --- /dev/null +++ b/assets/performanceprofile/tuned/openshift-node-performance-- @@ -0,0 +1,2 @@ +[main] +summary=Platform agnostic include file From 7e80e0e4e5dfc037ce6fafd9081d5226e64ffc5c Mon Sep 17 00:00:00 2001 From: Paul Bastide Date: Tue, 18 Nov 2025 16:22:45 -0500 Subject: [PATCH 2/3] resolve issues with ppc64le mapping Signed-off-by: Paul Bastide --- .../tuned/openshift-node-performance | 2 +- .../tuned/openshift-node-performance-ibm-ppc64le | 6 ++++++ .../controller/performanceprofile/components/consts.go | 2 ++ .../performanceprofile/components/tuned/tuned.go | 10 ++++++++++ 4 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 assets/performanceprofile/tuned/openshift-node-performance-ibm-ppc64le diff --git a/assets/performanceprofile/tuned/openshift-node-performance b/assets/performanceprofile/tuned/openshift-node-performance index 1a1d99a31..01cc28059 100644 --- a/assets/performanceprofile/tuned/openshift-node-performance +++ b/assets/performanceprofile/tuned/openshift-node-performance @@ -12,7 +12,7 @@ summary=Openshift node optimized for deterministic performance at the cost of in # openshift-node,cpu-partitioning # openshift-node,cpu-partitioning,openshift-node-performance-rt- include=openshift-node,cpu-partitioning${f:regex_search_ternary:${f:exec:uname:-r}:rt:,openshift-node-performance-rt-{{.PerformanceProfileName}}:}; - openshift-node-performance-${f:lscpu_check:Vendor ID\:\s*GenuineIntel:intel:Vendor ID\:\s*AuthenticAMD:amd:Architecture\:\s*aarch64:arm}-${f:lscpu_check:Architecture\:\s*x86_64:x86:Architecture\:\s*aarch64:aarch64}-{{.PerformanceProfileName}} + openshift-node-performance-${f:lscpu_check:Vendor ID\:\s*GenuineIntel:intel:Vendor ID\:\s*AuthenticAMD:amd:Architecture\:\s*aarch64:arm:Architecture\:\s*ppc64le:ibm}-${f:lscpu_check:Architecture\:\s*x86_64:x86:Architecture\:\s*aarch64:aarch64:Architecture\:\s*ppc64le:ppc64le}-{{.PerformanceProfileName}} # Inheritance of base profiles legend: # cpu-partitioning -> network-latency -> latency-performance diff --git a/assets/performanceprofile/tuned/openshift-node-performance-ibm-ppc64le b/assets/performanceprofile/tuned/openshift-node-performance-ibm-ppc64le new file mode 100644 index 000000000..d944dfaf4 --- /dev/null +++ b/assets/performanceprofile/tuned/openshift-node-performance-ibm-ppc64le @@ -0,0 +1,6 @@ +[main] +summary=Platform specific tuning for IBM POWER (ppc64le) + +[bootloader] +# No specific IOMMU settings for POWER +# No pstate args for POWER \ No newline at end of file diff --git a/pkg/performanceprofile/controller/performanceprofile/components/consts.go b/pkg/performanceprofile/controller/performanceprofile/components/consts.go index 6591082b6..9ac6a06e1 100644 --- a/pkg/performanceprofile/controller/performanceprofile/components/consts.go +++ b/pkg/performanceprofile/controller/performanceprofile/components/consts.go @@ -29,6 +29,8 @@ const ( ProfileNameArmAarch64 = "openshift-node-performance-arm-aarch64" // ProfileNameIntelX86 defines the Intel X86 specific tuning parameters ProfileNameIntelX86 = "openshift-node-performance-intel-x86" + // ProfileNameIbmPpc64le defines the IBM POWER ppc64le specific tuning parameters + ProfileNameIbmPpc64le = "openshift-node-performance--ppc64le" ) const ( diff --git a/pkg/performanceprofile/controller/performanceprofile/components/tuned/tuned.go b/pkg/performanceprofile/controller/performanceprofile/components/tuned/tuned.go index 7d7f8ef4c..a1b64c5d4 100644 --- a/pkg/performanceprofile/controller/performanceprofile/components/tuned/tuned.go +++ b/pkg/performanceprofile/controller/performanceprofile/components/tuned/tuned.go @@ -240,6 +240,12 @@ func NewNodePerformance(profile *performancev2.PerformanceProfile) (*tunedv1.Tun } IntelX86ProfileName := components.GetComponentName(profile.Name, components.ProfileNameIntelX86) + IbmPpc64leProfileData, err := getProfileData(filepath.Join("tuned", components.ProfileNameIbmPpc64le), templateArgs) + if err != nil { + return nil, err + } + IbmPpc64leProfileName := components.GetComponentName(profile.Name, components.ProfileNameIbmPpc64le) + profiles := []tunedv1.TunedProfile{ { Name: &name, @@ -261,6 +267,10 @@ func NewNodePerformance(profile *performancev2.PerformanceProfile) (*tunedv1.Tun Name: &IntelX86ProfileName, Data: &IntelX86ProfileData, }, + { + Name: &IbmPpc64leProfileName, + Data: &IbmPpc64leProfileData, + }, } priority := uint64(20) From 421f23f9e8fed867e422e7857dedb8af7608da47 Mon Sep 17 00:00:00 2001 From: Paul Bastide Date: Mon, 1 Dec 2025 20:30:48 -0500 Subject: [PATCH 3/3] refactor: attempt 2 Signed-off-by: Paul Bastide --- .../controller/performanceprofile/components/consts.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/performanceprofile/controller/performanceprofile/components/consts.go b/pkg/performanceprofile/controller/performanceprofile/components/consts.go index 9ac6a06e1..afa9952d1 100644 --- a/pkg/performanceprofile/controller/performanceprofile/components/consts.go +++ b/pkg/performanceprofile/controller/performanceprofile/components/consts.go @@ -30,7 +30,7 @@ const ( // ProfileNameIntelX86 defines the Intel X86 specific tuning parameters ProfileNameIntelX86 = "openshift-node-performance-intel-x86" // ProfileNameIbmPpc64le defines the IBM POWER ppc64le specific tuning parameters - ProfileNameIbmPpc64le = "openshift-node-performance--ppc64le" + ProfileNameIbmPpc64le = "openshift-node-performance-ibm-ppc64le" ) const (