Add relative cpulists for loads

jiraProject== RHEL-25206

Signed-off-by: Tomas Glozar <tglozar@redhat.com>
This commit is contained in:
Tomas Glozar 2024-04-10 09:22:21 +02:00
parent 403fe3b32a
commit 6d0cbf7a80
2 changed files with 77 additions and 1 deletions

View File

@ -0,0 +1,70 @@
From 636701e66cb98b979948b7a47320809c734e2a9e Mon Sep 17 00:00:00 2001
From: Tomas Glozar <tglozar@redhat.com>
Date: Thu, 4 Apr 2024 10:14:38 +0200
Subject: [PATCH] rteval: Add relative cpulists for loads
Relative cpulists were added for measurements in 64ce7848 ("rteval: Add
relative cpulists for measurements"). It was observed since that this
feature would also be useful for load cpulists, for example when the
measurements are performed externally and rteval is only used to run
loads.
Add support for relative cpulists also for loads. This works the same
way as for measurements using parse_cpulist_from_config, only difference
is there is no --loads-run-on-isolcpus option. That is, --loads-cpulist
now also takes lists with addition (+) and removal (-) of CPUs against
the default list, e.g. +0,1,-7,8.
Signed-off-by: Tomas Glozar <tglozar@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
rteval-cmd | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/rteval-cmd b/rteval-cmd
index ed13af3..c72bc61 100755
--- a/rteval-cmd
+++ b/rteval-cmd
@@ -331,29 +331,32 @@ if __name__ == '__main__':
ldcfg = config.GetSection('loads')
msrcfg = config.GetSection('measurement')
+ # Remember if cpulists were explicitly set by the user before running
+ # parse_cpulist_from_config, which generates default value for them
msrcfg_cpulist_present = msrcfg.cpulist != ""
- # Parse measurement cpulist using parse_cpulist_from_config to account for run-on-isolcpus
- # and relative cpusets
+ ldcfg_cpulist_present = ldcfg.cpulist != ""
+ # Parse cpulists using parse_cpulist_from_config to account for
+ # run-on-isolcpus and relative cpusets
cpulist = parse_cpulist_from_config(msrcfg.cpulist, msrcfg.run_on_isolcpus)
if msrcfg_cpulist_present and not cpulist_utils.is_relative(msrcfg.cpulist) and msrcfg.run_on_isolcpus:
logger.log(Log.WARN, "ignoring --measurement-run-on-isolcpus, since cpulist is specified")
msrcfg.cpulist = collapse_cpulist(cpulist)
- if ldcfg.cpulist:
- ldcfg.cpulist = remove_offline(ldcfg.cpulist)
+ cpulist = parse_cpulist_from_config(ldcfg.cpulist)
+ ldcfg.cpulist = collapse_cpulist(cpulist)
# if we only specified one set of cpus (loads or measurement)
# default the other to the inverse of the specified list
- if not ldcfg.cpulist and msrcfg_cpulist_present:
+ if not ldcfg_cpulist_present and msrcfg_cpulist_present:
tmplist = expand_cpulist(msrcfg.cpulist)
tmplist = SysTopology().invert_cpulist(tmplist)
tmplist = cpulist_utils.online_cpulist(tmplist)
ldcfg.cpulist = collapse_cpulist(tmplist)
- if not msrcfg_cpulist_present and ldcfg.cpulist:
+ if not msrcfg_cpulist_present and ldcfg_cpulist_present:
tmplist = expand_cpulist(ldcfg.cpulist)
tmplist = SysTopology().invert_cpulist(tmplist)
tmplist = cpulist_utils.online_cpulist(tmplist)
msrcfg.cpulist = collapse_cpulist(tmplist)
- if ldcfg.cpulist:
+ if ldcfg_cpulist_present:
logger.log(Log.DEBUG, f"loads cpulist: {ldcfg.cpulist}")
# if --onlyload is specified msrcfg.cpulist is unused
if msrcfg_cpulist_present and not rtevcfg.onlyload:
--
2.44.0

View File

@ -1,6 +1,6 @@
Name: rteval
Version: 3.7
Release: 10%{?dist}
Release: 11%{?dist}
Summary: Utility to evaluate system suitability for RT Linux
Group: Development/Tools
@ -41,6 +41,7 @@ Patch6: rteval-Minor-improvements-to-CpuList-class.patch
Patch7: rteval-Convert-CpuList-class-to-a-module.patch
Patch8: rteval-Add-relative-cpulists-for-measurements.patch
Patch9: rteval-Implement-initial-dmidecode-support.patch
Patch10: rteval-Add-relative-cpulists-for-loads.patch
%description
The rteval script is a utility for measuring various aspects of
@ -62,6 +63,7 @@ to the screen.
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%build
%{__python3} setup.py build
@ -83,6 +85,10 @@ to the screen.
%{_bindir}/rteval
%changelog
* Wed Apr 10 2024 Tomas Glozar <tglozar@redhat.com> - 3.7-11
- Add relative cpulists for loads
Resolves: RHEL-25206
* Tue Apr 09 2024 Tomas Glozar <tglozar@redhat.com> - 3.7-10
- Add dependency on procps-ng which was missing in minimal environments
Resolves: RHEL-31921