2
0
mirror of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-09-04 20:19:47 +08:00
linux/tools/perf/tests/shell/trace_summary.sh
Ian Rogers 6dd7a0fde9 perf test trace_summary: Skip --bpf-summary tests if no libbpf
If perf is built without libbpf (e.g. NO_LIBBPF=1) then the
--bpf-summary perf trace tests will fail.

Skip the tests as this is expected behavior.

Signed-off-by: Ian Rogers <irogers@google.com>
Acked-by: Howard Chu <howardchu95@gmail.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alex Gaynor <alex.gaynor@gmail.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Alice Ryhl <aliceryhl@google.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Andreas Hindborg <a.hindborg@kernel.org>
Cc: Benno Lossin <benno.lossin@proton.me>
Cc: Björn Roy Baron <bjorn3_gh@protonmail.com>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: Dmitriy Vyukov <dvyukov@google.com>
Cc: Gary Guo <gary@garyguo.net>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: James Clark <james.clark@linaro.org>
Cc: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Miguel Ojeda <ojeda@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephen Brennan <stephen.s.brennan@oracle.com>
Cc: Trevor Gross <tmgross@umich.edu>
Cc: Weilin Wang <weilin.wang@intel.com>
Link: https://lore.kernel.org/r/20250528032637.198960-7-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2025-05-28 10:12:47 -03:00

78 lines
2.1 KiB
Bash
Executable File

#!/bin/sh
# perf trace summary (exclusive)
# SPDX-License-Identifier: GPL-2.0
# Check that perf trace works with various summary mode
# shellcheck source=lib/probe.sh
. "$(dirname $0)"/lib/probe.sh
skip_if_no_perf_trace || exit 2
[ "$(id -u)" = 0 ] || exit 2
OUTPUT=$(mktemp /tmp/perf_trace_test.XXXXX)
test_perf_trace() {
args=$1
workload="true"
search="^\s*(open|read|close).*[0-9]+%$"
echo "testing: perf trace ${args} -- ${workload}"
perf trace ${args} -- ${workload} >${OUTPUT} 2>&1
if [ $? -ne 0 ]; then
echo "Error: perf trace ${args} failed unexpectedly"
cat ${OUTPUT}
rm -f ${OUTPUT}
exit 1
fi
count=$(grep -E -c -m 3 "${search}" ${OUTPUT})
if [ "${count}" != "3" ]; then
echo "Error: cannot find enough pattern ${search} in the output"
cat ${OUTPUT}
rm -f ${OUTPUT}
exit 1
fi
}
# summary only for a process
test_perf_trace "-s"
# normal output with summary at the end
test_perf_trace "-S"
# summary only with an explicit summary mode
test_perf_trace "-s --summary-mode=thread"
# summary with normal output - total summary mode
test_perf_trace "-S --summary-mode=total"
# summary only for system wide - per-thread summary
test_perf_trace "-as --summary-mode=thread --no-bpf-summary"
# summary only for system wide - total summary mode
test_perf_trace "-as --summary-mode=total --no-bpf-summary"
if ! perf check feature -q bpf; then
echo "Skip --bpf-summary tests as perf built without libbpf"
rm -f ${OUTPUT}
exit 2
fi
# summary only for system wide - per-thread summary with BPF
test_perf_trace "-as --summary-mode=thread --bpf-summary"
# summary only for system wide - total summary mode with BPF
test_perf_trace "-as --summary-mode=total --bpf-summary"
# summary with normal output for system wide - total summary mode with BPF
test_perf_trace "-aS --summary-mode=total --bpf-summary"
# summary only for system wide - cgroup summary mode with BPF
test_perf_trace "-as --summary-mode=cgroup --bpf-summary"
# summary with normal output for system wide - cgroup summary mode with BPF
test_perf_trace "-aS --summary-mode=cgroup --bpf-summary"
rm -f ${OUTPUT}