Rebase to upstream rteval-3.10

Resolves: RHEL-82914, RHEL-111000, RHEL-114928
Signed-off-by: John Kacur <jkacur@redhat.com>
This commit is contained in:
John Kacur 2025-11-19 16:42:01 -05:00
parent 00019d8e9b
commit 4d09d99ca3
8 changed files with 8 additions and 251 deletions

1
.gitignore vendored
View File

@ -7,3 +7,4 @@
/rteval-3.7.tar.xz
/rteval-3.8.tar.xz
/rteval-3.9.tar.xz
/rteval-3.10.tar.xz

View File

@ -1,45 +0,0 @@
From 950b6dd5d7812d101bf30ac0b4c94bedcc2a9d23 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Fri, 7 Feb 2025 14:36:17 -0500
Subject: [PATCH 2/2] rteval: Change default measurement module to cyclictest
Change the default measurement module in rteval to cyclictest
until we can fix a hang in rtla timerlat hist
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval-cmd | 2 +-
rteval.conf | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/rteval-cmd b/rteval-cmd
index 9875903c0107..4e13d312a24a 100755
--- a/rteval-cmd
+++ b/rteval-cmd
@@ -250,7 +250,7 @@ if __name__ == '__main__':
if not config.HasSection('measurement'):
config.AppendConfig('measurement', {
- 'timerlat' : 'module',
+ 'cyclictest' : 'module',
'sysstat' : 'module'})
# Prepare log levels before loading modules, not to have unwanted log messages
diff --git a/rteval.conf b/rteval.conf
index 46a9b1743716..601410b51c28 100644
--- a/rteval.conf
+++ b/rteval.conf
@@ -6,8 +6,8 @@ duration: 60.0
report_interval: 600
[measurement]
-# cyclictest: module
-timerlat: module
+cyclictest: module
+# timerlat: module
[loads]
kcompile: module
--
2.48.1

View File

@ -1,31 +0,0 @@
From 686fefa1e63da70b0c3e4da9ea816e334fef1782 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Fri, 7 Feb 2025 14:31:14 -0500
Subject: [PATCH 1/2] rteval: Change the default interval for timerlat to
1100us
Change the default interval for timerlat in rteval to 1100us to make it less
likely to encounter a hang in rtla timerlat hist, until we have a better
solution.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/modules/measurement/timerlat.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rteval/modules/measurement/timerlat.py b/rteval/modules/measurement/timerlat.py
index 5bfc495217ea..fe29f34bccbd 100644
--- a/rteval/modules/measurement/timerlat.py
+++ b/rteval/modules/measurement/timerlat.py
@@ -509,7 +509,7 @@ class Timerlat(rtevalModulePrototype):
def ModuleParameters():
""" default parameters """
return {"interval": {"descr": "Base interval or period of threads in microseconds",
- "default": 100,
+ "default": 1100,
"metavar": "INTV_US"},
"priority": {"descr": "Run rtla timerlat with this priority",
"default": 95,
--
2.48.1

View File

@ -1,91 +0,0 @@
From 5edb31a58bea3c2433e817439e053b79221a06df Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Fri, 13 Dec 2024 15:07:09 -0500
Subject: [PATCH] rteval: Fix missing statistics for system with timerlat
Fix missing statistics for the system with timerlat by fixing the test
in rteval_test.xsl for stoptrace_invoked
In addition
- Add --no-summary to the rtla command line
- Parse out "ALL:" for good measure although this should be surpressed
with the --no-summary command line option.
- timerlat reports stop tracing when receiving a SIGINT, so also check
whether the maximum value is greater than the --timerlat-stoptrace value
Tested the following scenarios.
- timerlat-stoptrace USEC is NOT used
- timerlat-stoptrace USEC is used AND the max value recorded is greater
than the value to trigger stop tracing
- timerlat-stoptrace USEC is used AND the max value recorded is not
greater than the value to trigger stop tracing
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/modules/measurement/timerlat.py | 14 +++++++++++---
rteval/rteval_text.xsl | 2 +-
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/rteval/modules/measurement/timerlat.py b/rteval/modules/measurement/timerlat.py
index 3fcdb5ff2819..5bfc495217ea 100644
--- a/rteval/modules/measurement/timerlat.py
+++ b/rteval/modules/measurement/timerlat.py
@@ -230,6 +230,7 @@ class Timerlat(rtevalModulePrototype):
self.__cmd = ['rtla', 'timerlat', 'hist', self.__interval, '-P', f'f:{int(self.__priority)}', '-u']
self.__cmd.append(f'-c{self.__cpulist}')
self.__cmd.append(f'-E{self.__buckets}')
+ self.__cmd.append('--no-summary')
if self.__cfg.stoptrace:
self.__cmd.append(f"-T{int(self.__cfg.stoptrace)}")
@@ -392,6 +393,10 @@ class Timerlat(rtevalModulePrototype):
self.__stoptrace = True
self.__posttrace += line
continue
+ elif line.startswith('ALL:'):
+ # We should only see 'ALL:' without timerlat --no-summary
+ # print(line)
+ continue
else:
#print(line)
pass
@@ -424,17 +429,20 @@ class Timerlat(rtevalModulePrototype):
for n in list(self.__timerlatdata.keys()):
self.__timerlatdata[n].reduce()
- self.__timerlat_out.close()
-
self._setFinished()
self.__started = False
+ self.__timerlat_err.close()
+ self.__timerlat_out.close()
+
def MakeReport(self):
rep_n = libxml2.newNode('timerlat')
rep_n.newProp('command_line', ' '.join(self.__cmd))
+ max_val = self.__timerlatdata['system'].max
+
stoptrace_invoked_n = libxml2.newNode('stoptrace_invoked')
- if self.stcpu != -1:
+ if self.stcpu != -1 and max_val > int(self.__cfg.stoptrace):
stoptrace_invoked_n.newProp("invoked", "true")
else:
stoptrace_invoked_n.newProp("invoked", "")
diff --git a/rteval/rteval_text.xsl b/rteval/rteval_text.xsl
index 70f3e0fd4b1c..146302744f58 100644
--- a/rteval/rteval_text.xsl
+++ b/rteval/rteval_text.xsl
@@ -342,7 +342,7 @@
</xsl:if>
<!-- If stoptrace_invoked is true, no Statistics are available -->
- <xsl:if test="stoptrace_invoked != true">
+ <xsl:if test="stoptrace_invoked != 'true'">
<xsl:text> Statistics: &#10;</xsl:text>
<xsl:apply-templates select="system/statistics"/>
</xsl:if>
--
2.47.1

View File

@ -1,45 +0,0 @@
From 23636bde2236f5d28ce8b10c7b28a880a3e9a2d9 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Wed, 18 Jun 2025 14:21:54 -0400
Subject: [PATCH 2/2] rteval: Make timerlat the default for rteval
Return timerlat to be the default measurement module for rteval
Also make the default base interval 100us to match cyclictest
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval.conf | 4 ++--
rteval/modules/measurement/timerlat.py | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/rteval.conf b/rteval.conf
index 601410b51c28..46a9b1743716 100644
--- a/rteval.conf
+++ b/rteval.conf
@@ -6,8 +6,8 @@ duration: 60.0
report_interval: 600
[measurement]
-cyclictest: module
-# timerlat: module
+# cyclictest: module
+timerlat: module
[loads]
kcompile: module
diff --git a/rteval/modules/measurement/timerlat.py b/rteval/modules/measurement/timerlat.py
index fe29f34bccbd..5bfc495217ea 100644
--- a/rteval/modules/measurement/timerlat.py
+++ b/rteval/modules/measurement/timerlat.py
@@ -509,7 +509,7 @@ class Timerlat(rtevalModulePrototype):
def ModuleParameters():
""" default parameters """
return {"interval": {"descr": "Base interval or period of threads in microseconds",
- "default": 1100,
+ "default": 100,
"metavar": "INTV_US"},
"priority": {"descr": "Run rtla timerlat with this priority",
"default": 95,
--
2.49.0

View File

@ -1,31 +0,0 @@
From e874cc3f757bae50e74af461529179048c1eb4a7 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Wed, 4 Jun 2025 13:38:51 -0400
Subject: [PATCH 1/2] rteval: services.py: Fix SyntaxWarning
In services.py we get a SyntaxWarning: invalid escape sequence '\('
using python >= 3.12
Fix this by using a raw string.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval/sysinfo/services.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rteval/sysinfo/services.py b/rteval/sysinfo/services.py
index e98017804841..c3c155354e07 100644
--- a/rteval/sysinfo/services.py
+++ b/rteval/sysinfo/services.py
@@ -42,7 +42,7 @@ class SystemServices:
servicename = os.path.basename(service)
if not [1 for p in reject if fnmatch.fnmatch(servicename, p)] \
and os.access(service, os.X_OK):
- cmd = f'{getcmdpath("grep")} -qs "\(^\|\W\)status)" {service}'
+ cmd = fr'{getcmdpath("grep")} -qs "\(^\|\W\)status)" {service}'
c = subprocess.Popen(cmd, shell=True, encoding='utf-8')
c.wait()
if c.returncode == 0:
--
2.49.0

View File

@ -1,6 +1,6 @@
Name: rteval
Version: 3.9
Release: 5%{?dist}
Version: 3.10
Release: 1%{?dist}
Summary: Utility to evaluate system suitability for RT Linux
Group: Development/Tools
@ -33,11 +33,6 @@ Requires: rtla
BuildArch: noarch
#Patches
Patch1: rteval-Fix-missing-statistics-for-system-with-timerl.patch
Patch2: rteval-Change-the-default-interval-for-timerlat-to-1100us.patch
Patch3: rteval-Change-default-measurement-module-to-cyclictest.patch
Patch4: rteval-services.py-Fix-SyntaxWarning.patch
Patch5: rteval-Make-timerlat-the-default-for-rteval.patch
%description
The rteval script is a utility for measuring various aspects of
@ -71,6 +66,10 @@ to the screen.
%{_bindir}/rteval
%changelog
* Wed Nov 19 2025 John Kacur <jkacur@redhat.com> - 3.10-1
- Rebase to upstream rteval-3.10
Resolves: RHEL-82914, RHEL-111000, RHEL-114928
* Thu Jun 19 2025 John Kacur <jkacur@redhat.com> - 3.9-5
- Make timerlat the default measurement module
- Make the default interval 100us

View File

@ -1 +1 @@
SHA512 (rteval-3.9.tar.xz) = 923fc11bdfa4c1f51ead0108184b7c2c708581a4b1adcdad168359cf916e85e9838adb1e65c923cead90e9644886c02bf663ab7ab14f3630d98cb2b67cddc541
SHA512 (rteval-3.10.tar.xz) = 1e5d7ffc32c22e1a5a060c9d4621e12c919fea752bc21f51a9c4cc485284b21354ee6eb3d1b41af4d1377eae2648ede812b8f9a2670ad39c4e58810656b6e03a