Commit fcc7a329 authored by Joel Fernandes (Google)'s avatar Joel Fernandes (Google) Committed by Frederic Weisbecker
Browse files

rcutorture: Copy out ftrace into its own console file



When debugging, it can be difficult to quickly find the ftrace dump
within the console log, which in turn makes it difficult to process it
independent of the rest of the console output.  This commit therefore
copies the contents of the buffers into its own file to make it easier
to locate and process the ftrace dump. The original ftrace dump is still
available in the console log in cases because it can be more convenient
to process it in situ, for example, for scripts that process console
output as well as ftrace-dump data.

Also handle the case of multiple ftrace dumps potentially showing up in the
log. Example for a file like [1], it will extract as [2].

[1]:
foo
foo
Dumping ftrace buffer:
---------------------------------
blah
blah
---------------------------------
more
bar
baz
Dumping ftrace buffer:
---------------------------------
blah2
blah2
---------------------------------
bleh
bleh

[2]:

Ftrace dump 1:
blah
blah

Ftrace dump 2:
blah2
blah2

[ paulmck: Fixed awk indentation, input up front. ]

Signed-off-by: default avatarJoel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
parent e3bdaefb
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
@@ -331,3 +331,32 @@ specify_qemu_net () {
		echo $1 -net none
	fi
}

# Extract the ftrace output from the console log output
# The ftrace output in the original logs look like:
# Dumping ftrace buffer:
# ---------------------------------
# [...]
# ---------------------------------
extract_ftrace_from_console() {
	awk < "$1" '

	/Dumping ftrace buffer:/ {
		buffer_count++
		print "Ftrace dump " buffer_count ":"
		capture = 1
		next
	}

	/---------------------------------/ {
		if(capture == 1) {
			capture = 2
			next
		} else if(capture == 2) {
			capture = 0
			print ""
		}
	}

	capture == 2'
}
+7 −0
Original line number Diff line number Diff line
@@ -182,3 +182,10 @@ if ! test -s $file.diags
then
	rm -f $file.diags
fi

# Call extract_ftrace_from_console function, if the output is empty,
# don't create $file.ftrace. Otherwise output the results to $file.ftrace
extract_ftrace_from_console $file > $file.ftrace
if [ ! -s $file.ftrace ]; then
	rm -f $file.ftrace
fi