forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
821 B
34 lines
821 B
#!/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 |
|
|
|
|