Add timerlat as a measurement module Resolves: RHEL-28058 Signed-off-by: John Kacur <jkacur@redhat.com>
71 lines
3.4 KiB
Diff
71 lines
3.4 KiB
Diff
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
|
|
|