brintos

brintos / linux-shallow public Read only

0
0
Text · 1.0 KiB · 08a39ad Raw
49 lines · bash
1#!/bin/sh2# SPDX-License-Identifier: GPL-2.0+3 4usage() {5	echo Extract any RCU CPU stall warnings present in specified file.6	echo Filter out clocksource lines.  Note that preceding-lines excludes the7	echo initial line of the stall warning but trailing-lines includes it.8	echo9	echo Usage: $(basename $0) dmesg-file [ preceding-lines [ trailing-lines ] ]10	echo11	echo Error: $112}13 14# Terminate the script, if the argument is missing15 16if test -f "$1" && test -r "$1"17then18	:19else20	usage "Console log file \"$1\" missing or unreadable."21	exit 122fi23 24echo $125preceding_lines="${2-3}"26trailing_lines="${3-10}"27 28awk -v preceding_lines="$preceding_lines" -v trailing_lines="$trailing_lines" '29suffix <= 0 {30	for (i = preceding_lines; i > 0; i--)31		last[i] = last[i - 1];32	last[0] = $0;33}34 35suffix > 0 {36	print $0;37	suffix--;38	if (suffix <= 0)39		print "";40}41 42suffix <= 0 && /detected stall/ {43	for (i = preceding_lines; i >= 0; i--)44		if (last[i] != "")45			print last[i];46	suffix = trailing_lines;47}' < "$1" | tr -d '\015' | grep -v clocksource48 49