diff --git a/rteval-Add-relative-cpulists-for-loads.patch b/rteval-Add-relative-cpulists-for-loads.patch new file mode 100644 index 0000000..2f45c89 --- /dev/null +++ b/rteval-Add-relative-cpulists-for-loads.patch @@ -0,0 +1,70 @@ +From 636701e66cb98b979948b7a47320809c734e2a9e Mon Sep 17 00:00:00 2001 +From: Tomas Glozar +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 +Signed-off-by: John Kacur +--- + 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 + diff --git a/rteval.spec b/rteval.spec index 4bcb59f..591e67f 100644 --- a/rteval.spec +++ b/rteval.spec @@ -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 - 3.7-11 +- Add relative cpulists for loads +Resolves: RHEL-25206 + * Tue Apr 09 2024 Tomas Glozar - 3.7-10 - Add dependency on procps-ng which was missing in minimal environments Resolves: RHEL-31921