mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 03:04:51 +01:00
perf test addr2line_inlines: Ensure inline information shows on LBR leaves
Expand the addr2line inline function testing to also run for an LBR callchain, skipping if LBR support isn't present. Signed-off-by: Ian Rogers <irogers@google.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Dapeng Mi <dapeng1.mi@linux.intel.com> Cc: Dmitriy Vyukov <dvyukov@google.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: James Clark <james.clark@linaro.org> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Krzysztof Łopatowski <krzysztof.m.lopatowski@gmail.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Weilin Wang <weilin.wang@intel.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
04f81f45b4
commit
446c595dc0
1 changed files with 28 additions and 0 deletions
|
|
@ -61,8 +61,36 @@ test_dwarf() {
|
|||
fi
|
||||
}
|
||||
|
||||
test_lbr() {
|
||||
echo "Inline unwinding LBR verification test"
|
||||
if [ ! -f /sys/bus/event_source/devices/cpu/caps/branches ] &&
|
||||
[ ! -f /sys/bus/event_source/devices/cpu_core/caps/branches ]
|
||||
then
|
||||
echo "Skip: only x86 CPUs support LBR"
|
||||
return
|
||||
fi
|
||||
|
||||
# Record data. Currently only dwarf callchains support inlined functions.
|
||||
perf record --call-graph lbr -e cycles:u -o "${perf_data}" -- perf test -w inlineloop 1
|
||||
|
||||
# Check output with inline (default) and srcline
|
||||
perf script -i "${perf_data}" --fields +srcline > "${perf_script_txt}"
|
||||
|
||||
# Expect the leaf and middle functions to occur on lines in the 20s, with
|
||||
# the non-inlined parent function on a line in the 30s.
|
||||
if grep -q "inlineloop.c:2. (inlined)" "${perf_script_txt}" &&
|
||||
grep -q "inlineloop.c:3.$" "${perf_script_txt}"
|
||||
then
|
||||
echo "Inline unwinding lbr verification test [Success]"
|
||||
else
|
||||
echo "Inline unwinding lbr verification test [Failed missing inlined functions]"
|
||||
err=1
|
||||
fi
|
||||
}
|
||||
|
||||
test_fp
|
||||
test_dwarf
|
||||
test_lbr
|
||||
|
||||
cleanup
|
||||
exit $err
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue