import rteval-3.4-2.el8

This commit is contained in:
CentOS Sources 2022-07-08 02:16:14 +00:00 committed by root
parent c7898d35fd
commit ab008925c2
13 changed files with 12 additions and 497 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/rteval-3.3.tar.xz
SOURCES/rteval-3.4.tar.xz

View File

@ -1 +1 @@
557793c55592bfb3dc0e858274895af4347a2fe9 SOURCES/rteval-3.3.tar.xz
0e04e697615aff39a95dfd864c6bf504bf0ac7c4 SOURCES/rteval-3.4.tar.xz

View File

@ -1,66 +0,0 @@
From e20fb6d6f1a357afe5ae7ba63d5bb340e0041156 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Tue, 7 Jun 2022 11:29:18 -0400
Subject: [PATCH] rteval: Change the default kernel to compile to linux-5.18.1
rteval compiles the linux kernel as a load
Change the default kernel that rteval compiles to linux-5.18.1
Signed-off-by: John Kacur <jkacur@redhat.com>
---
Makefile | 2 +-
rteval/modules/loads/kcompile.py | 4 ++--
rteval/rteval.conf | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Makefile b/Makefile
index 36d40867883c..ffea8a05f460 100644
--- a/Makefile
+++ b/Makefile
@@ -17,7 +17,7 @@ PREFIX := /usr
DATADIR := $(DESTDIR)/$(PREFIX)/share
LOADDIR := loadsource
-KLOAD := $(LOADDIR)/linux-5.13.2.tar.xz
+KLOAD := $(LOADDIR)/linux-5.18.1.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 3d9b882d8810..2c93c794fe75 100644
--- a/rteval/modules/loads/kcompile.py
+++ b/rteval/modules/loads/kcompile.py
@@ -36,7 +36,7 @@ from rteval.Log import Log
from rteval.misc import expand_cpulist, compress_cpulist
from rteval.systopology import SysTopology
-DEFAULT_KERNEL_PREFIX = "linux-5.13"
+DEFAULT_KERNEL_PREFIX = "linux-5.18"
class KBuildJob:
'''Class to manage a build job bound to a particular node'''
@@ -326,7 +326,7 @@ class Kcompile(CommandLineLoad):
def ModuleParameters():
return {"source": {"descr": "Source tar ball",
- "default": "linux-5.13.2.tar.xz",
+ "default": "linux-5.18.1.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 aa0a53bcfc63..1a8d0afd2642 100644
--- a/rteval/rteval.conf
+++ b/rteval/rteval.conf
@@ -18,7 +18,7 @@ dbench: external
stressng: module
[kcompile]
-source: linux-5.13.2.xz
+source: linux-5.18.1.xz
jobspercore: 2
[hackbench]
--
2.36.1

View File

@ -1,51 +0,0 @@
From 75667f4b92e3120bced7ae5464d97941edffd802 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Mon, 7 Feb 2022 16:09:13 -0500
Subject: [PATCH] rteval: Don't restrict measurement threads to inherited
cpumask
This patch reverses be811d28a471cfcaf7960289e00960e7f5b18f03
This patch syncs rteval to 795433f50f20ef7598db5cfe991b5386e4080d41 in
rt-tests
If the user does not specify a cpumask, rteval will still run on the
cpus according to the cpumask inherited from the runtime environment.
However, if the user specifies a cpumask, then it will overwrite the
runtime environment where allowed.
This will allow the user to run measurement threads on isolated cpus.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/modules/measurement/cyclictest.py | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/rteval/modules/measurement/cyclictest.py b/rteval/modules/measurement/cyclictest.py
index 5330d1466302..4ca310bf7490 100644
--- a/rteval/modules/measurement/cyclictest.py
+++ b/rteval/modules/measurement/cyclictest.py
@@ -217,19 +217,9 @@ class Cyclictest(rtevalModulePrototype):
else:
self.__cpus = online_cpus()
- # Sort the list of cpus to align with the order reported by
- # cyclictest
+ # Sort the list of cpus to align with the order reported by cyclictest
self.__cpus.sort(key=int)
- # Get the cpuset from the environment
- cpuset = os.sched_getaffinity(0)
-
- # Convert the elements to strings
- cpuset = [str(c) for c in cpuset]
-
- # Only include cpus that are in the cpuset
- self.__cpus = [c for c in self.__cpus if c in cpuset]
-
self.__numcores = len(self.__cpus)
info = cpuinfo()
--
2.34.1

View File

@ -1,53 +0,0 @@
From 19f9aa600ae331eb2fadf5f821f539bf24f0dea3 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Tue, 18 Jan 2022 15:03:36 -0500
Subject: [PATCH] rteval: Fix Popen for python3.6 where text=True is not
available
Fix using text=True in Popen for python-3.6 by using
encoding='utf-8' instead
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/sysinfo/services.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/rteval/sysinfo/services.py b/rteval/sysinfo/services.py
index e5de22efc342..c85980e19165 100644
--- a/rteval/sysinfo/services.py
+++ b/rteval/sysinfo/services.py
@@ -62,11 +62,11 @@ class SystemServices:
if not [1 for p in reject if fnmatch.fnmatch(servicename, p)] \
and os.access(service, os.X_OK):
cmd = '%s -qs "\(^\|\W\)status)" %s' % (getcmdpath('grep'), service)
- c = subprocess.Popen(cmd, shell=True, text=True)
+ c = subprocess.Popen(cmd, shell=True, encoding='utf-8')
c.wait()
if c.returncode == 0:
cmd = ['env', '-i', 'LANG="%s"' % os.environ['LANG'], 'PATH="%s"' % os.environ['PATH'], 'TERM="%s"' % os.environ['TERM'], service, 'status']
- c = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
+ c = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding='utf-8')
c.wait()
if c.returncode == 0 and (c.stdout.read() or c.stderr.read()):
ret_services[servicename] = 'running'
@@ -81,7 +81,7 @@ class SystemServices:
ret_services = {}
cmd = '%s list-unit-files -t service --no-legend' % getcmdpath('systemctl')
self.__log(Log.DEBUG, "cmd: %s" % cmd)
- c = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
+ c = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding='utf-8')
for p in c.stdout:
# p are lines like b'servicename.service status'
v = p.strip().split()
@@ -91,7 +91,7 @@ class SystemServices:
def services_get(self):
cmd = [getcmdpath('ps'), '-ocomm=', '1']
- c = subprocess.Popen(cmd, stdout=subprocess.PIPE, text=True)
+ c = subprocess.Popen(cmd, stdout=subprocess.PIPE, encoding='utf-8')
self.__init = c.stdout.read().strip()
if self.__init == 'systemd':
self.__log(Log.DEBUG, "Using systemd to get services status")
--
2.31.1

View File

@ -1,31 +0,0 @@
From 5931ace285305edbf8c86508f89869c5f3be0bf0 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Wed, 9 Mar 2022 14:03:10 -0500
Subject: [PATCH 06/17] rteval: Fix allmodconfig build on machines that don't
allow sha1 signing
rteval compiles the kernel using allmodconfig as a load.
This can be a problem if sha1 signing of modules is disabled.
Fix this by signing with sha512
Suggested-by: Juri Lelli <juri.lelli@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/modules/loads/kcompile.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/rteval/modules/loads/kcompile.py b/rteval/modules/loads/kcompile.py
index 8f97d38eca56..367f8dc1ca86 100644
--- a/rteval/modules/loads/kcompile.py
+++ b/rteval/modules/loads/kcompile.py
@@ -66,6 +66,7 @@ class KBuildJob:
self.runcmd = f"make O={self.objdir} -C {self.kdir} -j{self.jobs}"
self.cleancmd = f"make O={self.objdir} -C {self.kdir} clean allmodconfig"
+ self.cleancmd += f"&& pushd {self.objdir} && {self.kdir}/scripts/config -d CONFIG_MODULE_SIG_SHA1 -e CONFIG_MODULE_SIG_SHA512 && popd && make O={self.objdir} -C {self.kdir} olddefconfig"
if self.binder:
self.runcmd = self.binder + " " + self.runcmd
self.cleancmd = self.binder + " " + self.cleancmd
--
2.36.1

View File

@ -1,32 +0,0 @@
From aca562064a8d9f5927aa39bc108eac3bf4d0a56b Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Fri, 14 Jan 2022 14:00:54 -0500
Subject: [PATCH] rteval: Fix test misses threshold assignment
Fix case where self.__cfg.threshold has a value but
instead of 'threshold' in self.__cfg,
'breaktrace' in self.__cfg.
by just checking whether self.__cfg.threshold has a value
if self._cfg.breaktrace does not have a value
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/modules/measurement/cyclictest.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rteval/modules/measurement/cyclictest.py b/rteval/modules/measurement/cyclictest.py
index cc74b467913d..af8adeeeb402 100644
--- a/rteval/modules/measurement/cyclictest.py
+++ b/rteval/modules/measurement/cyclictest.py
@@ -299,7 +299,7 @@ class Cyclictest(rtevalModulePrototype):
if 'breaktrace' in self.__cfg and self.__cfg.breaktrace:
self.__cmd.append("-b%d" % int(self.__cfg.breaktrace))
self.__cmd.append("--tracemark")
- elif 'threshold' in self.__cfg and self.__cfg.threshold:
+ elif self.__cfg.threshold:
self.__cmd.append("-b%d" % int(self.__cfg.threshold))
# Buffer for cyclictest data written to stdout
--
2.31.1

View File

@ -1,34 +0,0 @@
From 14b0cff41f13602579fd708748eb8a2ad93db85b Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Mon, 14 Feb 2022 22:09:21 -0500
Subject: [PATCH] rteval: If the user doesn't specify a cpumask, use the
inherited one
If the user doesn't specify a cpumask, then we need to use the inherited
one to match what cyclictest currently does
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/modules/measurement/cyclictest.py | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/rteval/modules/measurement/cyclictest.py b/rteval/modules/measurement/cyclictest.py
index 4ca310bf7490..8fdd5341794a 100644
--- a/rteval/modules/measurement/cyclictest.py
+++ b/rteval/modules/measurement/cyclictest.py
@@ -216,6 +216,12 @@ class Cyclictest(rtevalModulePrototype):
self.__sparse = True
else:
self.__cpus = online_cpus()
+ # Get the cpuset from the environment
+ cpuset = os.sched_getaffinity(0)
+ # Convert the elements to strings
+ cpuset = [str(c) for c in cpuset]
+ # Only include cpus that are in the cpuset
+ self.__cpus = [c for c in self.__cpus if c in cpuset]
# Sort the list of cpus to align with the order reported by cyclictest
self.__cpus.sort(key=int)
--
2.34.1

View File

@ -1,60 +0,0 @@
From 9dff629f186313beebb96594d236dd9268bef1b1 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Wed, 26 Jan 2022 10:06:33 -0500
Subject: [PATCH] rteval: Increase default buckets from 2000 to 3500
Increase the default buckets from 2000 to 3500
With commit 0292c8963611 we skip statistics reporting if we run out of
buckets. Increase the default number of buckets to make this less likely
to occur.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
doc/rteval.8 | 2 +-
rteval/modules/measurement/cyclictest.py | 2 +-
rteval/rteval.conf | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/doc/rteval.8 b/doc/rteval.8
index fa24509ce7e5..25dcfcc298e7 100644
--- a/doc/rteval.8
+++ b/doc/rteval.8
@@ -122,7 +122,7 @@ Measurement thread interval in microseconds (default: 100)
Interval increment in microseconds (default: 0)
.TP
.B \-\-cyclictest-buckets=NBUCKETS
-Number of 1 microsecond histogram buckets (default: 2000)
+Number of 1 microsecond histogram buckets (default: 3500)
.TP
.B \-\-hackbench-jobspercore=N
Number of jobs per online-core for hackbench load
diff --git a/rteval/modules/measurement/cyclictest.py b/rteval/modules/measurement/cyclictest.py
index af8adeeeb402..5330d1466302 100644
--- a/rteval/modules/measurement/cyclictest.py
+++ b/rteval/modules/measurement/cyclictest.py
@@ -450,7 +450,7 @@ def ModuleParameters():
"default": 100,
"metavar": "INTV_US"},
"buckets": {"descr": "Histogram width",
- "default": 2000,
+ "default": 3500,
"metavar": "NUM"},
"priority": {"descr": "Run cyclictest with the given priority",
"default": 95,
diff --git a/rteval/rteval.conf b/rteval/rteval.conf
index 7ce6ef0b5acc..aa0a53bcfc63 100644
--- a/rteval/rteval.conf
+++ b/rteval/rteval.conf
@@ -6,7 +6,7 @@ duration: 60.0
report_interval: 600
[cyclictest]
-buckets: 2000
+buckets: 3500
interval: 100
distance: 0
priority: 95
--
2.34.1

View File

@ -1,43 +0,0 @@
From ddbff5f40845c64dbf40f8cbed018242d20abfcb Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Fri, 3 Jun 2022 11:16:59 -0400
Subject: [PATCH 15/17] rteval: kcompile: Fix regular expression to match
kernel prefix
If the user specifies a kernel to compile as a load other than the
default kernel, the kernel prefix is obtained with a regular expression.
Currently the regular expression does not accomodate two digit numbers
in the kernel version.
Fix that regular expression to accomodate different kernel versions,
with room to grow for the future.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/modules/loads/kcompile.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/rteval/modules/loads/kcompile.py b/rteval/modules/loads/kcompile.py
index 2701a0dcba91..3d9b882d8810 100644
--- a/rteval/modules/loads/kcompile.py
+++ b/rteval/modules/loads/kcompile.py
@@ -169,7 +169,7 @@ class Kcompile(CommandLineLoad):
if not os.path.exists(tarfile):
raise rtevalRuntimeError(self, " tarfile %s does not exist!" % tarfile)
self.source = tarfile
- kernel_prefix = re.search(r"linux-\d\.\d", self.source).group(0)
+ kernel_prefix = re.search(r"linux-\d{1,2}\.\d{1,3}", self.source).group(0)
else:
tarfiles = glob.glob(os.path.join(self.srcdir, "%s*" % DEFAULT_KERNEL_PREFIX))
if tarfiles:
@@ -177,6 +177,7 @@ class Kcompile(CommandLineLoad):
else:
raise rtevalRuntimeError(self, " no kernel tarballs found in %s" % self.srcdir)
kernel_prefix = DEFAULT_KERNEL_PREFIX
+ self._log(Log.DEBUG, f"kernel_prefix = {kernel_prefix}")
# check for existing directory
kdir = None
--
2.36.1

View File

@ -1,65 +0,0 @@
From bc36f2007d614748397c0ccec518ecb2876daca9 Mon Sep 17 00:00:00 2001
From: Valentin Schneider <vschneid@redhat.com>
Date: Tue, 3 May 2022 12:01:06 +0100
Subject: [PATCH 09/17] rteval: kcompile: Fix source tarball argument handling
Kcompile._WorkloadSetup() looks for a "tarball" and "tarfile" entry in
the CfgSection, but I couldn't find a single setter for thoses. The
only way for a user to specify a file is via --kcompile-source, which
doesn't seem to be actually used by the module.
Make Kcompile actually use --kcompile-source.
Signed-off-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/modules/loads/kcompile.py | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/rteval/modules/loads/kcompile.py b/rteval/modules/loads/kcompile.py
index add0cd86cde4..2701a0dcba91 100644
--- a/rteval/modules/loads/kcompile.py
+++ b/rteval/modules/loads/kcompile.py
@@ -28,6 +28,7 @@ import sys
import os
import os.path
import glob
+import re
import subprocess
from rteval.modules import rtevalRuntimeError
from rteval.modules.loads import CommandLineLoad
@@ -35,7 +36,7 @@ from rteval.Log import Log
from rteval.misc import expand_cpulist, compress_cpulist
from rteval.systopology import SysTopology
-kernel_prefix = "linux-5.13"
+DEFAULT_KERNEL_PREFIX = "linux-5.13"
class KBuildJob:
'''Class to manage a build job bound to a particular node'''
@@ -163,17 +164,19 @@ class Kcompile(CommandLineLoad):
return
# find our source tarball
- if 'tarball' in self._cfg:
- tarfile = os.path.join(self.srcdir, self._cfg.tarfile)
+ if self._cfg.source:
+ tarfile = os.path.join(self.srcdir, self._cfg.source)
if not os.path.exists(tarfile):
raise rtevalRuntimeError(self, " tarfile %s does not exist!" % tarfile)
self.source = tarfile
+ kernel_prefix = re.search(r"linux-\d\.\d", self.source).group(0)
else:
- tarfiles = glob.glob(os.path.join(self.srcdir, "%s*" % kernel_prefix))
+ tarfiles = glob.glob(os.path.join(self.srcdir, "%s*" % DEFAULT_KERNEL_PREFIX))
if tarfiles:
self.source = tarfiles[0]
else:
raise rtevalRuntimeError(self, " no kernel tarballs found in %s" % self.srcdir)
+ kernel_prefix = DEFAULT_KERNEL_PREFIX
# check for existing directory
kdir = None
--
2.36.1

View File

@ -1,35 +0,0 @@
From da95d97bafc9b0740a83da93ba304345ab3c157f Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Fri, 29 Apr 2022 16:06:01 -0400
Subject: [PATCH 08/17] rteval: kcompile: Use systopology to get a list of cpus
on a node
kcompile gets a lists of cpus on a node but doesn't take into account
whether the cpus are online or not.
Instead of using the method in kcompile, use the method in systopology,
since that will consider whether the cpus are online or not.
Reported-by: Valentin Schneider <vschneid@redhat.com>
Tested-by: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/modules/loads/kcompile.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rteval/modules/loads/kcompile.py b/rteval/modules/loads/kcompile.py
index 367f8dc1ca86..add0cd86cde4 100644
--- a/rteval/modules/loads/kcompile.py
+++ b/rteval/modules/loads/kcompile.py
@@ -202,7 +202,7 @@ class Kcompile(CommandLineLoad):
self.cpus = {}
self.nodes = self.topology.getnodes()
for n in self.nodes:
- self.cpus[n] = [int(c.split('/')[-1][3:]) for c in glob.glob('/sys/devices/system/node/node%s/cpu[0-9]*' % n)]
+ self.cpus[n] = self.topology.getcpus(n)
self.cpus[n].sort()
# if a cpulist was specified, only allow cpus in that list on the node
--
2.36.1

View File

@ -1,6 +1,6 @@
Name: rteval
Version: 3.3
Release: 9%{?dist}
Version: 3.4
Release: 2%{?dist}
Summary: Utility to evaluate system suitability for RT Linux
Group: Development/Tools
@ -32,16 +32,6 @@ Requires: libmpc libmpc-devel
Obsoletes: rteval-common <= 3.1
#Patches
Patch1: rteval-Fix-test-misses-threshold-assignment.patch
Patch2: rteval-Fix-Popen-for-python3.6-where-text-True-is-no.patch
Patch3: rteval-Increase-default-buckets-from-2000-to-3500.patch
Patch4: rteval-Don-t-restrict-measurement-threads-to-inherit.patch
Patch5: rteval-If-the-user-doesn-t-specify-a-cpumask-use-the.patch
Patch6: rteval-Fix-allmodconfig-build-on-machines-that-don-t.patch
Patch7: rteval-kcompile-Use-systopology-to-get-a-list-of-cpu.patch
Patch8: rteval-kcompile-Fix-source-tarball-argument-handling.patch
Patch9: rteval-kcompile-Fix-regular-expression-to-match-kern.patch
Patch10: rteval-Change-the-default-kernel-to-compile.patch
%description
The rteval script is a utility for measuring various aspects of
@ -54,16 +44,6 @@ to the screen.
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%build
%{__python3} setup.py build
@ -71,9 +51,6 @@ to the screen.
%install
%{__python3} setup.py install --root=$RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
%{python3_sitelib}/*.egg-info
@ -101,6 +78,14 @@ rm -rf $RPM_BUILD_ROOT
%{python3_sitelib}/rteval/__pycache__/*
%changelog
* Tue Jun 28 2022 John Kacur <jkacur@redhat.com> - 3.4-2
- Add back __pycache__ to the rhel-8.7 spec file
Resolves: rhbz#2069354
* Tue Jun 28 2022 John Kacur <jkacur@redhat.com> - 3.4-1
- Rebase to rteval-3.4 upstream
Resolves: rhbz#2069354
* Wed Jun 22 2022 John Kacur <jkacur@redhat.com> - 3.3-9
- Add upstream kcompile patches
Resolves: rhbz#2093478