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