]> git.baikalelectronics.ru Git - kernel.git/commit
perf unwind: Don't show unwind error messages when augmenting frame pointer stack
authorJames Clark <james.clark@arm.com>
Wed, 6 Apr 2022 14:56:51 +0000 (15:56 +0100)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Sat, 9 Apr 2022 15:34:29 +0000 (12:34 -0300)
commitbd66bc0daefa8800d5a8d8c9511e76db11b4ba82
treecb831ff51818bcaf75944ee2d1d999687c135ac4
parentca08de12ca81753cb38b334e809bda4abf064fc8
perf unwind: Don't show unwind error messages when augmenting frame pointer stack

Commit Fixes: ddda82b665132916 ("perf arm64: Inject missing frames when
using 'perf record --call-graph=fp'") intended to add a 'best effort'
DWARF unwind that improved the frame pointer stack in most scenarios.

It's expected that the unwind will fail sometimes, but this shouldn't be
reported as an error. It only works when the return address can be
determined from the contents of the link register alone.

Fix the error shown when the unwinder requires extra registers by adding
a new flag that suppresses error messages. This flag is not set in the
normal --call-graph=dwarf unwind mode so that behavior is not changed.

Fixes: ddda82b665132916 ("perf arm64: Inject missing frames when using 'perf record --call-graph=fp'")
Reported-by: John Garry <john.garry@huawei.com>
Signed-off-by: James Clark <james.clark@arm.com>
Tested-by: John Garry <john.garry@huawei.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Alexandre Truong <alexandre.truong@arm.com>
Cc: German Gomez <german.gomez@arm.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20220406145651.1392529-1-james.clark@arm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/tests/dwarf-unwind.c
tools/perf/util/arm64-frame-pointer-unwind-support.c
tools/perf/util/machine.c
tools/perf/util/unwind-libdw.c
tools/perf/util/unwind-libdw.h
tools/perf/util/unwind-libunwind-local.c
tools/perf/util/unwind-libunwind.c
tools/perf/util/unwind.h