mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-29 17:25:38 +00:00
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>
This commit is contained in:
parent
1302e352b2
commit
f72bcb92e9
31
tools/perf/tests/shell/trace_exit_race.sh
Executable file
31
tools/perf/tests/shell/trace_exit_race.sh
Executable file
@ -0,0 +1,31 @@
|
||||
#!/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
|
Loading…
Reference in New Issue
Block a user