Add measurement and load location information to the run summary report

Resolves: rhbz#2081325

Signed-off-by: Leah Leshchinsky <lleshchi@redhat.com>
This commit is contained in:
Leah Leshchinsky 2022-09-26 10:19:12 -04:00
parent a91b2c49e8
commit bc70d36587
No known key found for this signature in database
GPG Key ID: 1674BC3F464A7C0C
2 changed files with 99 additions and 1 deletions

View File

@ -0,0 +1,92 @@
From 3d878311c145f3c06032d7df57d1fefa529943f3 Mon Sep 17 00:00:00 2001
From: Leah Leshchinsky <lleshchi@redhat.com>
Date: Tue, 16 Aug 2022 14:19:31 -0400
Subject: [PATCH] rteval: Add measurement and load location to run report
The run report produced at the end of a run does not contain information
on load and measurement thread locations.
Adjust MakeReport() functions of LoadModules and MeasurementModules
class so that new properties with number of loads and cpu information
are added to the XML report and can be read by rteval_text.xsl.
Signed-off-by: Leah Leshchinsky <lleshchi@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
diff --git a/rteval/modules/loads/__init__.py b/rteval/modules/loads/__init__.py
index 2c2105efa964..7daa57a19c66 100644
--- a/rteval/modules/loads/__init__.py
+++ b/rteval/modules/loads/__init__.py
@@ -30,6 +30,7 @@ import libxml2
from rteval.Log import Log
from rteval.rtevalConfig import rtevalCfgSection
from rteval.modules import RtEvalModules, rtevalModulePrototype
+from rteval.systopology import collapse_cpulist, CpuList, SysTopology as SysTop
class LoadThread(rtevalModulePrototype):
def __init__(self, name, config, logger=None):
@@ -131,6 +132,14 @@ class LoadModules(RtEvalModules):
def MakeReport(self):
rep_n = RtEvalModules.MakeReport(self)
rep_n.newProp("load_average", str(self.GetLoadAvg()))
+ rep_n.newProp("loads", str(self.ModulesLoaded()))
+ cpulist = self._cfg.GetSection(self._module_config).cpulist
+ if cpulist:
+ # Convert str to list and remove offline cpus
+ cpulist = CpuList(cpulist).cpulist
+ else:
+ cpulist = SysTop().online_cpus()
+ rep_n.newProp("loadcpus", collapse_cpulist(cpulist))
return rep_n
diff --git a/rteval/modules/measurement/__init__.py b/rteval/modules/measurement/__init__.py
index 318248bd7e35..d99873e64a1a 100644
--- a/rteval/modules/measurement/__init__.py
+++ b/rteval/modules/measurement/__init__.py
@@ -24,7 +24,7 @@
import libxml2
from rteval.modules import RtEvalModules, ModuleContainer
-
+from rteval.systopology import collapse_cpulist, CpuList, SysTopology as SysTop
class MeasurementProfile(RtEvalModules):
"""Keeps and controls all the measurement modules with the same measurement profile"""
@@ -189,6 +189,14 @@ 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
+ if cpulist:
+ # Convert str to list and remove offline cpus
+ cpulist = CpuList(cpulist).cpulist
+ else:
+ cpulist = SysTop().online_cpus()
+ rep_n.newProp("measurecpus", collapse_cpulist(cpulist))
+
for mp in self.__measureprofiles:
mprep_n = mp.MakeReport()
if mprep_n:
diff --git a/rteval/rteval_text.xsl b/rteval/rteval_text.xsl
index c40063e3dd19..7ecfac6b6140 100644
--- a/rteval/rteval_text.xsl
+++ b/rteval/rteval_text.xsl
@@ -13,6 +13,14 @@
<xsl:value-of select="run_info/date"/><xsl:text> </xsl:text><xsl:value-of select="run_info/time"/>
<xsl:text>&#10;</xsl:text>
+ <xsl:text> Loads: </xsl:text>
+ <xsl:value-of select="loads/@loads"/><xsl:text> loads run on cores </xsl:text><xsl:value-of select="loads/@loadcpus"/>
+ <xsl:text>&#10;</xsl:text>
+
+ <xsl:text> Measurement: </xsl:text>
+ <xsl:text>measurement threads run on cores </xsl:text><xsl:value-of select="Measurements/@measurecpus"/>
+ <xsl:text>&#10;</xsl:text>
+
<xsl:text> Run time: </xsl:text>
<xsl:value-of select="run_info/@days"/><xsl:text> days </xsl:text>
<xsl:value-of select="run_info/@hours"/><xsl:text>h </xsl:text>
--
2.31.1

View File

@ -1,6 +1,6 @@
Name: rteval
Version: 3.4
Release: 3%{?dist}
Release: 4%{?dist}
Summary: Utility to evaluate system suitability for RT Linux
Group: Development/Tools
@ -42,6 +42,7 @@ Patch9: rteval-cyclictest-Reset-cpulist-from-newly-calculate.patch
Patch10: rteval-Fix-loads-cpulist-restriction.patch
Patch11: rteval-Allow-user-to-enter-compressed-cpu-lists-fix.patch
Patch12: rteval-Move-cpuinfo-to-systopology.py-and-delete-mis.patch
Patch13: rteval-Add-measurement-and-load-location-to-run-repo.patch
%description
The rteval script is a utility for measuring various aspects of
@ -66,6 +67,7 @@ to the screen.
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%build
%{__python3} setup.py build
@ -87,6 +89,10 @@ to the screen.
%{_bindir}/rteval
%changelog
* Mon Sep 26 2022 Leah Leshchinsky <lleshchi@redhat.com> - 3.4-4
- Add measurement and load location information to the run summary report
Resolves: rhbz#2081325
* Tue Sep 13 2022 John Kacur <jkacur@rredhat.com> - 3.4-3
- Make use of systopology instead of misc everywhere
- Allow user to enter compressed form of cpulist