[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <tip-eac05af2bf33aa9474482f1f19555adfd2cdf69d@git.kernel.org>
Date: Mon, 24 Oct 2016 12:00:08 -0700
From: tip-bot for Stefano Sanfilippo <tipbot@...or.com>
To: linux-tip-commits@...r.kernel.org
Cc: eranian@...gle.com, ssanfilippo@...omium.org, hpa@...or.com,
peterz@...radead.org, mingo@...nel.org, tglx@...utronix.de,
rmcilroy@...omium.org, acme@...hat.com,
linux-kernel@...r.kernel.org, namhyung@...nel.org,
anton@...abs.org, jolsa@...hat.com
Subject: [tip:perf/core] perf jit: Do not assume pgoff is zero
Commit-ID: eac05af2bf33aa9474482f1f19555adfd2cdf69d
Gitweb: http://git.kernel.org/tip/eac05af2bf33aa9474482f1f19555adfd2cdf69d
Author: Stefano Sanfilippo <ssanfilippo@...omium.org>
AuthorDate: Thu, 13 Oct 2016 03:59:39 -0700
Committer: Arnaldo Carvalho de Melo <acme@...hat.com>
CommitDate: Mon, 24 Oct 2016 11:07:39 -0300
perf jit: Do not assume pgoff is zero
When calculating .eh_frame_hdr base and LUT offsets do not always assume
that pgoff is zero.
The assumption is false for DSOs built from the jitdump by perf inject,
because the ELF header did not exist in memory at sampling time.
Signed-off-by: Stefano Sanfilippo <ssanfilippo@...omium.org>
Signed-off-by: Ross McIlroy <rmcilroy@...omium.org>
Reviewed-by: Stephane Eranian <eranian@...gle.com>
Cc: Anton Blanchard <anton@...abs.org>
Cc: Jiri Olsa <jolsa@...hat.com>
Cc: Namhyung Kim <namhyung@...nel.org>
Cc: Peter Zijlstra <peterz@...radead.org>
Link: http://lkml.kernel.org/r/1476356383-30100-6-git-send-email-eranian@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@...hat.com>
---
tools/perf/util/unwind-libunwind-local.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/perf/util/unwind-libunwind-local.c b/tools/perf/util/unwind-libunwind-local.c
index 20c2e57..6fec84d 100644
--- a/tools/perf/util/unwind-libunwind-local.c
+++ b/tools/perf/util/unwind-libunwind-local.c
@@ -357,8 +357,8 @@ find_proc_info(unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pi,
di.format = UNW_INFO_FORMAT_REMOTE_TABLE;
di.start_ip = map->start;
di.end_ip = map->end;
- di.u.rti.segbase = map->start + segbase;
- di.u.rti.table_data = map->start + table_data;
+ di.u.rti.segbase = map->start + segbase - map->pgoff;
+ di.u.rti.table_data = map->start + table_data - map->pgoff;
di.u.rti.table_len = fde_count * sizeof(struct table_entry)
/ sizeof(unw_word_t);
ret = dwarf_search_unwind_table(as, ip, &di, pi,
Powered by blists - more mailing lists