diff --git a/rteval-Fix-parsing-in-kcompile-of-the-kernel-to-comp.patch b/rteval-Fix-parsing-in-kcompile-of-the-kernel-to-comp.patch new file mode 100644 index 0000000..9313dcc --- /dev/null +++ b/rteval-Fix-parsing-in-kcompile-of-the-kernel-to-comp.patch @@ -0,0 +1,103 @@ +From 7e2fae40e551530f6d0ad8528c4de1ec2ae9e31b Mon Sep 17 00:00:00 2001 +From: John Kacur +Date: Sun, 18 Aug 2024 15:23:00 -0400 +Subject: [PATCH 21/23] rteval: Fix parsing in kcompile of the kernel to + compile + +This patch does two things. +1. It allows you to create your own customer kernel with a dash -rteval + in the name, eg, linux-6.10.5-rteval +2. It fixes parsing of the kernel name so that if the user requests + linux-6.10.5 it doesn't use linux-6.10.6-rteval instead + +Signed-off-by: John Kacur +--- + rteval/modules/loads/kcompile.py | 30 +++++++++++++++++++----------- + 1 file changed, 19 insertions(+), 11 deletions(-) + +diff --git a/rteval/modules/loads/kcompile.py b/rteval/modules/loads/kcompile.py +index 80106812af0a..58c542201a1b 100644 +--- a/rteval/modules/loads/kcompile.py ++++ b/rteval/modules/loads/kcompile.py +@@ -122,6 +122,8 @@ class Kcompile(CommandLineLoad): + self.cpulist = config.cpulist + CommandLineLoad.__init__(self, "kcompile", config, logger) + self.logger = logger ++ self._kernel_prefix = "" ++ self._log(Log.DEBUG, f'self._cfg.source = {self._cfg.source}') + + def _extract_tarball(self): + if self.source is None: +@@ -152,22 +154,29 @@ class Kcompile(CommandLineLoad): + f"error removing builddir ({self.builddir}) (ret={ret})") + + def _find_tarball(self): +- # If the user specifies the full kernel name, check if available +- tarfile = os.path.join(self.srcdir, self._cfg.source) +- if os.path.exists(tarfile): +- return tarfile ++ """ Find the tarball and self._kernel_prefix """ + + if 'rc' in self._cfg.source: +- tarfile_prefix = re.search(r"\d{1,2}\.\d{1,3}\-[a-z]*\d{1,2}", self._cfg.source).group(0) ++ tarfile_prefix = re.search(r"\d{1,2}\.\d{1,3}\-rc\d{1,2}", self._cfg.source).group(0) ++ elif 'rteval' in self._cfg.source: ++ tarfile_prefix = re.search(r"(\d{1,2}\.\d{1,3}\.\d{1,3}\-rteval)|(\d{1,2}\.\d{1,3}\-rteval)", self._cfg.source).group(0) + else: + tarfile_prefix = re.search(r"(\d{1,2}\.\d{1,3}\.\d{1,3})|(\d{1,2}\.\d{1,3})", self._cfg.source).group(0) + ++ # Save the kernel prefix ++ self._kernel_prefix = "linux-" + tarfile_prefix ++ ++ # If the user specifies the full kernel name, check if available ++ tarfile = os.path.join(self.srcdir, self._cfg.source) ++ if os.path.exists(tarfile): ++ return tarfile ++ + # either a tar.xz or tar.gz might exist. Check for both. + xz_file = os.path.join(self.srcdir,"linux-" + tarfile_prefix + ".tar.xz" ) + gz_file = os.path.join(self.srcdir,"linux-" + tarfile_prefix + ".tar.gz" ) + if os.path.exists(xz_file): + return xz_file +- elif os.path.exists(gz_file): ++ if os.path.exists(gz_file): + return gz_file + raise rtevalRuntimeError(self, f"tarfile {tarfile} does not exist!") + +@@ -178,21 +187,20 @@ class Kcompile(CommandLineLoad): + # find our source tarball + if self._cfg.source: + self.source = self._find_tarball() +- kernel_prefix = re.search(r"(linux-\d{1,2}\.\d{1,3}\.\d{1,3})|(linux-\d{1,2}\.\d{1,3})", self.source).group(0) + else: + tarfiles = glob.glob(os.path.join(self.srcdir, f"{DEFAULT_KERNEL_PREFIX}*")) + if tarfiles: + self.source = tarfiles[0] + else: + raise rtevalRuntimeError(self, f" no kernel tarballs found in {self.srcdir}") +- kernel_prefix = DEFAULT_KERNEL_PREFIX +- self._log(Log.DEBUG, f"kernel_prefix = {kernel_prefix}") ++ self._kernel_prefix = DEFAULT_KERNEL_PREFIX ++ self._log(Log.DEBUG, f"self._kernel_prefix = {self._kernel_prefix}") + + # check for existing directory + kdir = None + names = os.listdir(self.builddir) + for d in names: +- if d.startswith(kernel_prefix): ++ if d == self._kernel_prefix: + kdir = d + break + if kdir is None: +@@ -200,7 +208,7 @@ class Kcompile(CommandLineLoad): + names = os.listdir(self.builddir) + for d in names: + self._log(Log.DEBUG, f"checking {d}") +- if d.startswith(kernel_prefix): ++ if d == self._kernel_prefix: + kdir = d + break + if kdir is None: +-- +2.46.2 + diff --git a/rteval-Update-the-kcompile-kernel-to-linux-6.12-rc4.patch b/rteval-Update-the-kcompile-kernel-to-linux-6.12-rc4.patch new file mode 100644 index 0000000..4f1e87f --- /dev/null +++ b/rteval-Update-the-kcompile-kernel-to-linux-6.12-rc4.patch @@ -0,0 +1,88 @@ +From d7dc1a05dd60c0fe2ab3edaaea3786a8be592ade Mon Sep 17 00:00:00 2001 +From: John Kacur +Date: Tue, 22 Oct 2024 13:42:12 -0400 +Subject: [PATCH 23/23] rteval: Update the kcompile kernel to linux-6.12-rc4 + +Update the kernel that rteval compiles as a load in the load module +kcompile + +This kernel contains patches to address the fact that ENGINE API has +been deprecated since OpenSSL version 3.0. This is important because +some distros have been dropping the headers for the deprecated api +and this has been causing kcompile to fail, unless you supply a special +kernel with the patches to address this. + +With this change the upstream kernel as is will work again. + +Signed-off-by: John Kacur +--- + Dockerfile | 2 +- + Makefile | 2 +- + rteval/modules/loads/kcompile.py | 4 ++-- + rteval/rteval.conf | 2 +- + 4 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/Dockerfile b/Dockerfile +index f3ee516b57d5..b8f602b11703 100644 +--- a/Dockerfile ++++ b/Dockerfile +@@ -1,7 +1,7 @@ + # Use CentOS Stream 9 as base image + FROM centos:stream9 + +-ARG KERNEL_VERSION=linux-6.10.5.tar.xz ++ARG KERNEL_VERSION=linux-6.12-rc4.tar.gz + + + # Copy current directory to /opt/rteval/ +diff --git a/Makefile b/Makefile +index e1a2bbba0373..a250b18611b4 100644 +--- a/Makefile ++++ b/Makefile +@@ -14,7 +14,7 @@ PREFIX := /usr + DATADIR := $(DESTDIR)/$(PREFIX)/share + LOADDIR := loadsource + +-KLOAD := $(LOADDIR)/linux-6.10.5.tar.xz ++KLOAD := $(LOADDIR)/linux-6.12-rc4.tar.gz + BLOAD := $(LOADDIR)/dbench-4.0.tar.gz + LOADS := $(KLOAD) $(BLOAD) + +diff --git a/rteval/modules/loads/kcompile.py b/rteval/modules/loads/kcompile.py +index 58c542201a1b..8a3a0e93fa14 100644 +--- a/rteval/modules/loads/kcompile.py ++++ b/rteval/modules/loads/kcompile.py +@@ -21,7 +21,7 @@ expand_cpulist = cpulist_utils.expand_cpulist + compress_cpulist = cpulist_utils.compress_cpulist + nonisolated_cpulist = cpulist_utils.nonisolated_cpulist + +-DEFAULT_KERNEL_PREFIX = "linux-6.10.5" ++DEFAULT_KERNEL_PREFIX = "linux-6.12-rc4" + + class KBuildJob: + '''Class to manage a build job bound to a particular node''' +@@ -342,7 +342,7 @@ class Kcompile(CommandLineLoad): + + def ModuleParameters(): + return {"source": {"descr": "Source tar ball", +- "default": "linux-6.10.5.tar.xz", ++ "default": "linux-6.12-rc4.tar.gz", + "metavar": "TARBALL"}, + "jobspercore": {"descr": "Number of working threads per core", + "default": 2, +diff --git a/rteval/rteval.conf b/rteval/rteval.conf +index 0611c031c2a0..5a49040d980f 100644 +--- a/rteval/rteval.conf ++++ b/rteval/rteval.conf +@@ -18,7 +18,7 @@ dbench: external + stressng: module + + [kcompile] +-source: linux-6.10.5.xz ++source: linux-6.12-rc4.tar.gz + jobspercore: 2 + + [hackbench] +-- +2.46.2 + diff --git a/rteval-Upgrade-load-kernel-to-linux-6.10.5.patch b/rteval-Upgrade-load-kernel-to-linux-6.10.5.patch new file mode 100644 index 0000000..2e12157 --- /dev/null +++ b/rteval-Upgrade-load-kernel-to-linux-6.10.5.patch @@ -0,0 +1,80 @@ +From 0e6fa19365330937d54132a3077d5d9961877546 Mon Sep 17 00:00:00 2001 +From: John Kacur +Date: Sun, 18 Aug 2024 12:10:55 -0400 +Subject: [PATCH 20/23] rteval: Upgrade load kernel to linux-6.10.5 + +The older kernel fails to compile on newer tool chains, so upgrade +the kernel that kcompile compiles as a load to linux-6.10.5 + +Signed-off-by: John Kacur +--- + Dockerfile | 2 +- + Makefile | 2 +- + rteval/modules/loads/kcompile.py | 4 ++-- + rteval/rteval.conf | 2 +- + 4 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/Dockerfile b/Dockerfile +index 45f6434777d4..f3ee516b57d5 100644 +--- a/Dockerfile ++++ b/Dockerfile +@@ -1,7 +1,7 @@ + # Use CentOS Stream 9 as base image + FROM centos:stream9 + +-ARG KERNEL_VERSION=linux-6.6.1.tar.xz ++ARG KERNEL_VERSION=linux-6.10.5.tar.xz + + + # Copy current directory to /opt/rteval/ +diff --git a/Makefile b/Makefile +index d9a6b9f116ac..e1a2bbba0373 100644 +--- a/Makefile ++++ b/Makefile +@@ -14,7 +14,7 @@ PREFIX := /usr + DATADIR := $(DESTDIR)/$(PREFIX)/share + LOADDIR := loadsource + +-KLOAD := $(LOADDIR)/linux-6.6.1.tar.xz ++KLOAD := $(LOADDIR)/linux-6.10.5.tar.xz + BLOAD := $(LOADDIR)/dbench-4.0.tar.gz + LOADS := $(KLOAD) $(BLOAD) + +diff --git a/rteval/modules/loads/kcompile.py b/rteval/modules/loads/kcompile.py +index f7a9c0084805..80106812af0a 100644 +--- a/rteval/modules/loads/kcompile.py ++++ b/rteval/modules/loads/kcompile.py +@@ -21,7 +21,7 @@ expand_cpulist = cpulist_utils.expand_cpulist + compress_cpulist = cpulist_utils.compress_cpulist + nonisolated_cpulist = cpulist_utils.nonisolated_cpulist + +-DEFAULT_KERNEL_PREFIX = "linux-6.6" ++DEFAULT_KERNEL_PREFIX = "linux-6.10.5" + + class KBuildJob: + '''Class to manage a build job bound to a particular node''' +@@ -334,7 +334,7 @@ class Kcompile(CommandLineLoad): + + def ModuleParameters(): + return {"source": {"descr": "Source tar ball", +- "default": "linux-6.6.1.tar.xz", ++ "default": "linux-6.10.5.tar.xz", + "metavar": "TARBALL"}, + "jobspercore": {"descr": "Number of working threads per core", + "default": 2, +diff --git a/rteval/rteval.conf b/rteval/rteval.conf +index a4aad33e264f..0611c031c2a0 100644 +--- a/rteval/rteval.conf ++++ b/rteval/rteval.conf +@@ -18,7 +18,7 @@ dbench: external + stressng: module + + [kcompile] +-source: linux-6.6.1.xz ++source: linux-6.10.5.xz + jobspercore: 2 + + [hackbench] +-- +2.46.2 + diff --git a/rteval.spec b/rteval.spec index a9b5d67..6c94e6c 100644 --- a/rteval.spec +++ b/rteval.spec @@ -1,6 +1,6 @@ Name: rteval Version: 3.8 -Release: 7%{?dist} +Release: 8%{?dist} Summary: Utility to evaluate system suitability for RT Linux Group: Development/Tools @@ -14,7 +14,7 @@ Requires: python3-lxml Requires: python3-libxml2 Requires: python3-requests Requires: realtime-tests >= 2.6-5 -Requires: rteval-loads >= 1.6-2 +Requires: rteval-loads >= 1.6-5 Requires: sysstat Requires: xz bzip2 tar gzip m4 make gawk Requires: kernel-headers @@ -50,6 +50,9 @@ Patch14: rteval-Added-functionality-to-allow-user-to-set-the-.patch Patch15: rteval-run-cyclictest-using-default-system-when-sett.patch Patch16: rteval-Add-module-for-tuned-state.patch Patch17: rteval-Add-tuned-state-to-rteval-text-report.patch +Patch18: rteval-Upgrade-load-kernel-to-linux-6.10.5.patch +Patch19: rteval-Fix-parsing-in-kcompile-of-the-kernel-to-comp.patch +Patch20: rteval-Update-the-kcompile-kernel-to-linux-6.12-rc4.patch %description The rteval script is a utility for measuring various aspects of @@ -83,6 +86,10 @@ to the screen. %{_bindir}/rteval %changelog +* Fri Oct 25 2024 John Kacur - 3.8-8 +- Update the kcompile kernel to linux-6.12-rc4 +Resolves: RHEL-63621 + * Mon Aug 12 2024 Tomas Glozar - 3.8-7 - Collect tuned state in sysinfo Resolves: RHEL-33303