Commit f72bcb92 authored by Benjamin Peterson's avatar Benjamin Peterson Committed by Arnaldo Carvalho de Melo
Browse files

perf tests: Add test for trace output loss



Add a test that checks that trace output is not lost to races. This is
accomplished by tracing the exit_group syscall of "true" multiple times and
checking for correct output.

Signed-off-by: default avatarBenjamin Peterson <benjamin@engflow.com>
Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Tested-by: default avatarHoward Chu <howardchu95@gmail.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20241107232128.108981-3-benjamin@engflow.com


[ Addressed two ShellCheck warnings ]
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 1302e352
Loading
Loading
Loading
Loading
+31 −0
Original line number Diff line number Diff line
#!/bin/sh
# perf trace exit race
# SPDX-License-Identifier: GPL-2.0

# Check that the last events of a perf trace'd subprocess are not
# lost. Specifically, trace the exiting syscall of "true" 10 times and ensure
# the output contains 10 correct lines.

# shellcheck source=lib/probe.sh
. "$(dirname $0)"/lib/probe.sh

skip_if_no_perf_trace || exit 2

trace_shutdown_race() {
	for _ in $(seq 10); do
		perf trace -e syscalls:sys_enter_exit_group true 2>>$file
	done
	[ "$(grep -c -E ' +[0-9]+\.[0-9]+ +true/[0-9]+ syscalls:sys_enter_exit_group\(\)$' $file)" = "10" ]
}


file=$(mktemp /tmp/temporary_file.XXXXX)

# Do not use whatever ~/.perfconfig file, it may change the output
# via trace.{show_timestamp,show_prefix,etc}
export PERF_CONFIG=/dev/null

trace_shutdown_race
err=$?
rm -f ${file}
exit $err