Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S941101AbcJXTAw (ORCPT ); Mon, 24 Oct 2016 15:00:52 -0400 Received: from terminus.zytor.com ([198.137.202.10]:46826 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S938689AbcJXTAv (ORCPT ); Mon, 24 Oct 2016 15:00:51 -0400 Date: Mon, 24 Oct 2016 12:00:08 -0700 From: tip-bot for Stefano Sanfilippo Message-ID: Cc: eranian@google.com, ssanfilippo@chromium.org, hpa@zytor.com, peterz@infradead.org, mingo@kernel.org, tglx@linutronix.de, rmcilroy@chromium.org, acme@redhat.com, linux-kernel@vger.kernel.org, namhyung@kernel.org, anton@ozlabs.org, jolsa@redhat.com Reply-To: mingo@kernel.org, tglx@linutronix.de, eranian@google.com, peterz@infradead.org, hpa@zytor.com, ssanfilippo@chromium.org, jolsa@redhat.com, namhyung@kernel.org, anton@ozlabs.org, rmcilroy@chromium.org, linux-kernel@vger.kernel.org, acme@redhat.com In-Reply-To: <1476356383-30100-6-git-send-email-eranian@google.com> References: <1476356383-30100-6-git-send-email-eranian@google.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:perf/core] perf jit: Do not assume pgoff is zero Git-Commit-ID: eac05af2bf33aa9474482f1f19555adfd2cdf69d X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1954 Lines: 43 Commit-ID: eac05af2bf33aa9474482f1f19555adfd2cdf69d Gitweb: http://git.kernel.org/tip/eac05af2bf33aa9474482f1f19555adfd2cdf69d Author: Stefano Sanfilippo AuthorDate: Thu, 13 Oct 2016 03:59:39 -0700 Committer: Arnaldo Carvalho de Melo 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 Signed-off-by: Ross McIlroy Reviewed-by: Stephane Eranian Cc: Anton Blanchard Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1476356383-30100-6-git-send-email-eranian@google.com Signed-off-by: Arnaldo Carvalho de Melo --- 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,