]> Git Repo - J-linux.git/commitdiff
tools/rcu: Add an extract-stall script
authorPaul E. McKenney <[email protected]>
Mon, 19 Jul 2021 17:08:12 +0000 (10:08 -0700)
committerPaul E. McKenney <[email protected]>
Thu, 16 Sep 2021 17:31:26 +0000 (10:31 -0700)
This commit adds a script that extracts RCU CPU stall warnings
from console output.  The user can optionally specify the number of
lines preceding the stall to output, and also the number of lines of
stall-warning text.

Signed-off-by: Paul E. McKenney <[email protected]>
tools/rcu/extract-stall.sh [new file with mode: 0644]

diff --git a/tools/rcu/extract-stall.sh b/tools/rcu/extract-stall.sh
new file mode 100644 (file)
index 0000000..e565697
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Extract any RCU CPU stall warnings present in specified file.
+# Filter out clocksource lines.  Note that preceding-lines excludes the
+# initial line of the stall warning but trailing-lines includes it.
+#
+# Usage: extract-stall.sh dmesg-file [ preceding-lines [ trailing-lines ] ]
+
+echo $1
+preceding_lines="${2-3}"
+trailing_lines="${3-10}"
+
+awk -v preceding_lines="$preceding_lines" -v trailing_lines="$trailing_lines" '
+suffix <= 0 {
+       for (i = preceding_lines; i > 0; i--)
+               last[i] = last[i - 1];
+       last[0] = $0;
+}
+
+suffix > 0 {
+       print $0;
+       suffix--;
+       if (suffix <= 0)
+               print "";
+}
+
+suffix <= 0 && /detected stall/ {
+       for (i = preceding_lines; i >= 0; i--)
+               if (last[i] != "")
+                       print last[i];
+       suffix = trailing_lines;
+}' < "$1" | tr -d '\015' | grep -v clocksource
+
This page took 0.075468 seconds and 4 git commands to generate.