Skip to content

Commit f72bcb9

Browse files
benjaminpacmel
authored andcommitted
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: Benjamin Peterson <benjamin@engflow.com> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> Tested-by: Howard 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: Arnaldo Carvalho de Melo <acme@redhat.com>
1 parent 1302e35 commit f72bcb9

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#!/bin/sh
2+
# perf trace exit race
3+
# SPDX-License-Identifier: GPL-2.0
4+
5+
# Check that the last events of a perf trace'd subprocess are not
6+
# lost. Specifically, trace the exiting syscall of "true" 10 times and ensure
7+
# the output contains 10 correct lines.
8+
9+
# shellcheck source=lib/probe.sh
10+
. "$(dirname $0)"/lib/probe.sh
11+
12+
skip_if_no_perf_trace || exit 2
13+
14+
trace_shutdown_race() {
15+
for _ in $(seq 10); do
16+
perf trace -e syscalls:sys_enter_exit_group true 2>>$file
17+
done
18+
[ "$(grep -c -E ' +[0-9]+\.[0-9]+ +true/[0-9]+ syscalls:sys_enter_exit_group\(\)$' $file)" = "10" ]
19+
}
20+
21+
22+
file=$(mktemp /tmp/temporary_file.XXXXX)
23+
24+
# Do not use whatever ~/.perfconfig file, it may change the output
25+
# via trace.{show_timestamp,show_prefix,etc}
26+
export PERF_CONFIG=/dev/null
27+
28+
trace_shutdown_race
29+
err=$?
30+
rm -f ${file}
31+
exit $err

0 commit comments

Comments
 (0)