Message ID | 20240426185008.225739-1-jkacur@redhat.com |
---|---|
State | New |
Headers | show |
Series | rteval: Add summary reporting for rteval | expand |
On Fri, 26 Apr 2024, John Kacur wrote: > This adds an rteval section to the xsl file and generates a timerlat > report at the end of a run. To use it edit your rteval.conf file > to comment out cyclictest and uncomment timerlat > > Another interesting thing you can do is uncomment both of them and > get a report from both in one run. > > You can also use this with the summary report, for example > > rteval -Z rteval-20240426-3/summary.xml > > will work with timerlat now. (or both cyclictest and timerlat at the > same time.) > > Signed-off-by: John Kacur <jkacur@redhat.com> > --- > rteval.conf | 1 + > rteval/rteval_text.xsl | 103 +++++++++++++++++++++++++++++++++++++++-- > 2 files changed, 100 insertions(+), 4 deletions(-) > > diff --git a/rteval.conf b/rteval.conf > index 4c32fcf4d842..601410b51c28 100644 > --- a/rteval.conf > +++ b/rteval.conf > @@ -7,6 +7,7 @@ report_interval: 600 > > [measurement] > cyclictest: module > +# timerlat: module > > [loads] > kcompile: module > diff --git a/rteval/rteval_text.xsl b/rteval/rteval_text.xsl > index f526526d4d49..1e9c0f0d26c5 100644 > --- a/rteval/rteval_text.xsl > +++ b/rteval/rteval_text.xsl > @@ -201,11 +201,11 @@ > <!-- --> > <!-- select="cyclictest|new_foo_section|another_section" --> > <!-- --> > - <xsl:apply-templates select="cyclictest|hwlatdetect[@format='1.0']|sysstat"/> > + <xsl:apply-templates select="cyclictest|timerlat|hwlatdetect[@format='1.0']|sysstat"/> > <xsl:text> </xsl:text> > </xsl:template> > > - <!-- Format the cyclic test section of the report --> > + <!-- Format the cyclictest section of the report --> > <xsl:template match="/rteval/Measurements/Profile/cyclictest"> > <xsl:text> Latency test </xsl:text> > > @@ -237,7 +237,7 @@ > </xsl:template> > > > - <!-- Format the CPU core section in the cyclict test part --> > + <!-- Format the CPU core section in the cyclictest part --> > <xsl:template match="/rteval/Measurements/Profile/cyclictest/core"> > <xsl:text> CPU core </xsl:text> > <xsl:value-of select="@id"/> > @@ -300,6 +300,101 @@ > <xsl:text> </xsl:text> > </xsl:template> > > + <!-- Format the timerlat section of the report --> > + <xsl:template match="/rteval/Measurements/Profile/timerlat"> > + <xsl:text> Latency test </xsl:text> > + > + <xsl:text> Started: </xsl:text> > + <xsl:value-of select="timestamps/runloop_start"/> > + <xsl:text> </xsl:text> > + > + <xsl:text> Stopped: </xsl:text> > + <xsl:value-of select="timestamps/runloop_stop"/> > + <xsl:text> </xsl:text> > + > + <xsl:text> Command: </xsl:text> > + <xsl:value-of select="@command_line"/> > + <xsl:text> </xsl:text> > + > + <xsl:apply-templates select="abort_report"/> > + > + <xsl:text> System: </xsl:text> > + <xsl:value-of select="system/@description"/> > + <xsl:text> </xsl:text> > + > + <xsl:text> Statistics: </xsl:text> > + <xsl:apply-templates select="system/statistics"/> > + > + <!-- Add CPU core info and stats--> > + <xsl:apply-templates select="core"> > + <xsl:sort select="@id" data-type="number"/> > + </xsl:apply-templates> > + </xsl:template> > + > + > + <!-- Format the CPU core section in the timerlat part --> > + <xsl:template match="/rteval/Measurements/Profile/timerlat/core"> > + <xsl:text> CPU core </xsl:text> > + <xsl:value-of select="@id"/> > + <xsl:text> Priority: </xsl:text> > + <xsl:value-of select="@priority"/> > + <xsl:text> </xsl:text> > + <xsl:text> Statistics: </xsl:text> > + <xsl:text> </xsl:text> > + <xsl:apply-templates select="statistics"/> > + </xsl:template> > + > + > + <!-- Generic formatting of statistics information --> > + <xsl:template match="/rteval/Measurements/Profile/timerlat/*/statistics"> > + <xsl:text> Samples: </xsl:text> > + <xsl:value-of select="samples"/> > + <xsl:text> </xsl:text> > + > + <xsl:if test="samples > 0"> > + <xsl:text> Mean: </xsl:text> > + <xsl:value-of select="mean"/> > + <xsl:value-of select="mean/@unit"/> > + <xsl:text> </xsl:text> > + > + <xsl:text> Median: </xsl:text> > + <xsl:value-of select="median"/> > + <xsl:value-of select="median/@unit"/> > + <xsl:text> </xsl:text> > + > + <xsl:text> Mode: </xsl:text> > + <xsl:value-of select="mode"/> > + <xsl:value-of select="mode/@unit"/> > + <xsl:text> </xsl:text> > + > + <xsl:text> Range: </xsl:text> > + <xsl:value-of select="range"/> > + <xsl:value-of select="range/@unit"/> > + <xsl:text> </xsl:text> > + > + <xsl:text> Min: </xsl:text> > + <xsl:value-of select="minimum"/> > + <xsl:value-of select="minimum/@unit"/> > + <xsl:text> </xsl:text> > + > + <xsl:text> Max: </xsl:text> > + <xsl:value-of select="maximum"/> > + <xsl:value-of select="maximum/@unit"/> > + <xsl:text> </xsl:text> > + > + <xsl:text> Mean Absolute Dev: </xsl:text> > + <xsl:value-of select="mean_absolute_deviation"/> > + <xsl:value-of select="mean_absolute_deviation/@unit"/> > + <xsl:text> </xsl:text> > + > + <xsl:text> Std.dev: </xsl:text> > + <xsl:value-of select="standard_deviation"/> > + <xsl:value-of select="standard_deviation/@unit"/> > + <xsl:text> </xsl:text> > + </xsl:if> > + <xsl:text> </xsl:text> > + </xsl:template> > + > > <!-- Format the hwlatdetect test section of the report --> > <xsl:template match="/rteval/Measurements/Profile/hwlatdetect[@format='1.0' and not(@aborted)]"> > @@ -340,7 +435,7 @@ > <xsl:text>us </xsl:text> > </xsl:template> > > - <!-- Format the cyclic test section of the report --> > + <!-- Format the cyclictest section of the report --> > <xsl:template match="/rteval/Measurements/Profile/sysstat"> > <xsl:text> sysstat measurements </xsl:text> > > -- > 2.44.0 > > Oops, I ammended the title to say, "rteval: Add summary reporting for timerlat" John
diff --git a/rteval.conf b/rteval.conf index 4c32fcf4d842..601410b51c28 100644 --- a/rteval.conf +++ b/rteval.conf @@ -7,6 +7,7 @@ report_interval: 600 [measurement] cyclictest: module +# timerlat: module [loads] kcompile: module diff --git a/rteval/rteval_text.xsl b/rteval/rteval_text.xsl index f526526d4d49..1e9c0f0d26c5 100644 --- a/rteval/rteval_text.xsl +++ b/rteval/rteval_text.xsl @@ -201,11 +201,11 @@ <!-- --> <!-- select="cyclictest|new_foo_section|another_section" --> <!-- --> - <xsl:apply-templates select="cyclictest|hwlatdetect[@format='1.0']|sysstat"/> + <xsl:apply-templates select="cyclictest|timerlat|hwlatdetect[@format='1.0']|sysstat"/> <xsl:text> </xsl:text> </xsl:template> - <!-- Format the cyclic test section of the report --> + <!-- Format the cyclictest section of the report --> <xsl:template match="/rteval/Measurements/Profile/cyclictest"> <xsl:text> Latency test </xsl:text> @@ -237,7 +237,7 @@ </xsl:template> - <!-- Format the CPU core section in the cyclict test part --> + <!-- Format the CPU core section in the cyclictest part --> <xsl:template match="/rteval/Measurements/Profile/cyclictest/core"> <xsl:text> CPU core </xsl:text> <xsl:value-of select="@id"/> @@ -300,6 +300,101 @@ <xsl:text> </xsl:text> </xsl:template> + <!-- Format the timerlat section of the report --> + <xsl:template match="/rteval/Measurements/Profile/timerlat"> + <xsl:text> Latency test </xsl:text> + + <xsl:text> Started: </xsl:text> + <xsl:value-of select="timestamps/runloop_start"/> + <xsl:text> </xsl:text> + + <xsl:text> Stopped: </xsl:text> + <xsl:value-of select="timestamps/runloop_stop"/> + <xsl:text> </xsl:text> + + <xsl:text> Command: </xsl:text> + <xsl:value-of select="@command_line"/> + <xsl:text> </xsl:text> + + <xsl:apply-templates select="abort_report"/> + + <xsl:text> System: </xsl:text> + <xsl:value-of select="system/@description"/> + <xsl:text> </xsl:text> + + <xsl:text> Statistics: </xsl:text> + <xsl:apply-templates select="system/statistics"/> + + <!-- Add CPU core info and stats--> + <xsl:apply-templates select="core"> + <xsl:sort select="@id" data-type="number"/> + </xsl:apply-templates> + </xsl:template> + + + <!-- Format the CPU core section in the timerlat part --> + <xsl:template match="/rteval/Measurements/Profile/timerlat/core"> + <xsl:text> CPU core </xsl:text> + <xsl:value-of select="@id"/> + <xsl:text> Priority: </xsl:text> + <xsl:value-of select="@priority"/> + <xsl:text> </xsl:text> + <xsl:text> Statistics: </xsl:text> + <xsl:text> </xsl:text> + <xsl:apply-templates select="statistics"/> + </xsl:template> + + + <!-- Generic formatting of statistics information --> + <xsl:template match="/rteval/Measurements/Profile/timerlat/*/statistics"> + <xsl:text> Samples: </xsl:text> + <xsl:value-of select="samples"/> + <xsl:text> </xsl:text> + + <xsl:if test="samples > 0"> + <xsl:text> Mean: </xsl:text> + <xsl:value-of select="mean"/> + <xsl:value-of select="mean/@unit"/> + <xsl:text> </xsl:text> + + <xsl:text> Median: </xsl:text> + <xsl:value-of select="median"/> + <xsl:value-of select="median/@unit"/> + <xsl:text> </xsl:text> + + <xsl:text> Mode: </xsl:text> + <xsl:value-of select="mode"/> + <xsl:value-of select="mode/@unit"/> + <xsl:text> </xsl:text> + + <xsl:text> Range: </xsl:text> + <xsl:value-of select="range"/> + <xsl:value-of select="range/@unit"/> + <xsl:text> </xsl:text> + + <xsl:text> Min: </xsl:text> + <xsl:value-of select="minimum"/> + <xsl:value-of select="minimum/@unit"/> + <xsl:text> </xsl:text> + + <xsl:text> Max: </xsl:text> + <xsl:value-of select="maximum"/> + <xsl:value-of select="maximum/@unit"/> + <xsl:text> </xsl:text> + + <xsl:text> Mean Absolute Dev: </xsl:text> + <xsl:value-of select="mean_absolute_deviation"/> + <xsl:value-of select="mean_absolute_deviation/@unit"/> + <xsl:text> </xsl:text> + + <xsl:text> Std.dev: </xsl:text> + <xsl:value-of select="standard_deviation"/> + <xsl:value-of select="standard_deviation/@unit"/> + <xsl:text> </xsl:text> + </xsl:if> + <xsl:text> </xsl:text> + </xsl:template> + <!-- Format the hwlatdetect test section of the report --> <xsl:template match="/rteval/Measurements/Profile/hwlatdetect[@format='1.0' and not(@aborted)]"> @@ -340,7 +435,7 @@ <xsl:text>us </xsl:text> </xsl:template> - <!-- Format the cyclic test section of the report --> + <!-- Format the cyclictest section of the report --> <xsl:template match="/rteval/Measurements/Profile/sysstat"> <xsl:text> sysstat measurements </xsl:text>
This adds an rteval section to the xsl file and generates a timerlat report at the end of a run. To use it edit your rteval.conf file to comment out cyclictest and uncomment timerlat Another interesting thing you can do is uncomment both of them and get a report from both in one run. You can also use this with the summary report, for example rteval -Z rteval-20240426-3/summary.xml will work with timerlat now. (or both cyclictest and timerlat at the same time.) Signed-off-by: John Kacur <jkacur@redhat.com> --- rteval.conf | 1 + rteval/rteval_text.xsl | 103 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 100 insertions(+), 4 deletions(-)