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@xxxxxxxxxx> --- 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