aboutsummaryrefslogtreecommitdiff
path: root/tools/perf/util/arm64-frame-pointer-unwind-support.c
diff options
context:
space:
mode:
authorGravatar James Clark <james.clark@arm.com> 2022-04-06 15:56:51 +0100
committerGravatar Arnaldo Carvalho de Melo <acme@redhat.com> 2022-04-09 12:34:29 -0300
commitfa7095c5c3240bb2ecbc77f8b69be9b1d9e2cf60 (patch)
treecb831ff51818bcaf75944ee2d1d999687c135ac4 /tools/perf/util/arm64-frame-pointer-unwind-support.c
parenttools headers arm64: Sync arm64's cputype.h with the kernel sources (diff)
downloadlinux-fa7095c5c3240bb2ecbc77f8b69be9b1d9e2cf60.tar.gz
linux-fa7095c5c3240bb2ecbc77f8b69be9b1d9e2cf60.tar.bz2
linux-fa7095c5c3240bb2ecbc77f8b69be9b1d9e2cf60.zip
perf unwind: Don't show unwind error messages when augmenting frame pointer stack
Commit Fixes: b9f6fbb3b2c29736 ("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: b9f6fbb3b2c29736 ("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>
Diffstat (limited to 'tools/perf/util/arm64-frame-pointer-unwind-support.c')
-rw-r--r--tools/perf/util/arm64-frame-pointer-unwind-support.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/tools/perf/util/arm64-frame-pointer-unwind-support.c b/tools/perf/util/arm64-frame-pointer-unwind-support.c
index 2242a885fbd7..4940be4a0569 100644
--- a/tools/perf/util/arm64-frame-pointer-unwind-support.c
+++ b/tools/perf/util/arm64-frame-pointer-unwind-support.c
@@ -53,7 +53,7 @@ u64 get_leaf_frame_caller_aarch64(struct perf_sample *sample, struct thread *thr
sample->user_regs.cache_regs[PERF_REG_ARM64_SP] = 0;
}
- ret = unwind__get_entries(add_entry, &entries, thread, sample, 2);
+ ret = unwind__get_entries(add_entry, &entries, thread, sample, 2, true);
sample->user_regs = old_regs;
if (ret || entries.length != 2)