summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@kernel.org>2023-12-14 09:49:09 -0800
committerPaul E. McKenney <paulmck@kernel.org>2023-12-14 09:49:09 -0800
commit92843b12654e732fec5f36d5e759c684fe400950 (patch)
treef85b09c00ba1d791f30ff74e7921824ed825cfa3
parentfa91b90eb6fca40a3ba55d3df616f8d6b67ccffa (diff)
downloadperfbook-paulmck.2023.12.14a.tar.gz
CodeSamples/cpu: Add temporalhist.sh to create histogramspaulmck.2023.12.14a
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
-rw-r--r--CodeSamples/cpu/temporalhist.sh42
1 files changed, 42 insertions, 0 deletions
diff --git a/CodeSamples/cpu/temporalhist.sh b/CodeSamples/cpu/temporalhist.sh
new file mode 100644
index 00000000..f96feba4
--- /dev/null
+++ b/CodeSamples/cpu/temporalhist.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+#
+# Reduce data gathered by fre.sh and rfe.sh as standard input.
+# The histogram output (time, count) will be emitted on standard output.
+# The is suitable for gnuplot, though stray values due to delays in the
+# test may need to be manually trimmed.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, you can access it online at
+# http://www.gnu.org/licenses/gpl-2.0.html.
+#
+# Copyright (C) Meta Platforms Inc., 2023
+#
+# Authors: Paul E. McKenney <paulmck@kernel.org>
+
+sed -e 's/!!!//' | grep '^[0-9][0-9]* ' |
+awk '
+curval != $4 {
+ if (curval != "")
+ print curval, nvals;
+ curval = $4;
+ nvals = 0;
+}
+
+{
+ nvals++;
+}
+
+END {
+ if (curval != "")
+ print curval, nvals;
+}'