@@ -146,7 +146,15 @@ measurement profiles, based on their characteristics"""
def SetupModuleOptions(self, parser):
"Sets up all the measurement modules' parameters for the option parser"
- self.__container.SetupModuleOptions(parser, self.__cfg)
+ grparser = self.__container.SetupModuleOptions(parser, self.__cfg)
+
+ # Set up options specific for measurement module group
+ grparser.add_argument("--measurement-run-on-isolcpus",
+ dest="measurement___run_on_isolcpus",
+ action="store_true",
+ default=self.__cfg.GetSection("measurement").setdefault("run-on-isolcpus", False).lower()
+ == "true",
+ help="Include isolated CPUs in default cpulist")
def Setup(self, modparams):
@@ -157,9 +165,10 @@ measurement profiles, based on their characteristics"""
modcfg = self.__cfg.GetSection("measurement")
cpulist = modcfg.cpulist
+ run_on_isolcpus = modcfg.run_on_isolcpus
for (modname, modtype) in modcfg:
- if modtype.lower() == 'module': # Only 'module' will be supported (ds)
+ if isinstance(modtype, str) and modtype.lower() == 'module': # Only 'module' will be supported (ds)
# Extract the measurement modules info
modinfo = self.__container.ModuleInfo(modname)
@@ -179,6 +188,7 @@ measurement profiles, based on their characteristics"""
# Setup this imported module inside the appropriate measurement profile
self.__cfg.AppendConfig(modname, modparams)
self.__cfg.AppendConfig(modname, {'cpulist':cpulist})
+ self.__cfg.AppendConfig(modname, {'run-on-isolcpus':run_on_isolcpus})
mp.Setup(modname)
del self.__container
@@ -190,11 +200,12 @@ measurement profiles, based on their characteristics"""
# Get the reports from all meaurement modules in all measurement profiles
rep_n = libxml2.newNode("Measurements")
cpulist = self.__cfg.GetSection("measurement").cpulist
+ run_on_isolcpus = self.__cfg.GetSection("measurement").run_on_isolcpus
if cpulist:
# Convert str to list and remove offline cpus
cpulist = CpuList(cpulist).cpulist
else:
- cpulist = SysTop().default_cpus()
+ cpulist = SysTop().online_cpus() if run_on_isolcpus else SysTop().default_cpus()
rep_n.newProp("measurecpus", collapse_cpulist(cpulist))
for mp in self.__measureprofiles:
Add option --measurement-run-on-isolcpus for the user to specify to include isolcpus in the default cpulist (without --measurement-cpulist). A default value might also be specified in rteval.conf: [measurement] run-on-isolcpus: true Note that values different from true evaluate as false. Signed-off-by: Tomas Glozar <tglozar@redhat.com> --- rteval/modules/measurement/__init__.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-)