mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00

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>
78 lines
2.1 KiB
Bash
Executable File
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}
|