From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751645AbdJRSyP (ORCPT ); Wed, 18 Oct 2017 14:54:15 -0400 Received: from mail.kdab.com ([176.9.126.58]:57656 "EHLO mail.kdab.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751519AbdJRSyL (ORCPT ); Wed, 18 Oct 2017 14:54:11 -0400 From: Milian Wolff To: acme@kernel.org, jolsa@kernel.org, namhyung@kernel.org Cc: Linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Milian Wolff , Arnaldo Carvalho de Melo , Yao Jin , Jiri Olsa Subject: [PATCH v6 6/6] perf util: use correct IP mapping to find srcline for hist entry Date: Wed, 18 Oct 2017 20:53:50 +0200 Message-Id: <20171018185350.14893-7-milian.wolff@kdab.com> In-Reply-To: <20171018185350.14893-1-milian.wolff@kdab.com> References: <20171018185350.14893-1-milian.wolff@kdab.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When inline frame resolution is disabled, a bogus srcline is obtained for hist entries: ~~~~~ $ perf report -s sym,srcline --no-inline --stdio -g none 95.21% 0.00% [.] __libc_start_main __libc_start_main+18446603358170398953 95.21% 0.00% [.] _start _start+18446650082411225129 46.67% 0.00% [.] main main+18446650082411225208 38.75% 0.00% [.] hypot hypot+18446603358164312084 23.75% 0.00% [.] main main+18446650082411225151 20.83% 20.83% [.] std::generate_canonical > random.h:143 18.12% 0.00% [.] main main+18446650082411225165 13.12% 13.12% [.] std::generate_canonical > random.tcc:3330 4.17% 4.17% [.] __hypot_finite __hypot_finite+163 4.17% 4.17% [.] std::generate_canonical > random.tcc:3333 4.17% 0.00% [.] __hypot_finite __hypot_finite+18446603358164312227 4.17% 0.00% [.] std::generate_canonical > std::generate_canonical > std::generate_canonical > random.h:143 13.12% 0.00% [.] std::generate_canonical > random.tcc:3330 4.17% 4.17% [.] __hypot_finite __hypot_finite+140715545239715 4.17% 4.17% [.] std::generate_canonical > std::generate_canonical > random.tcc:3333 2.92% 2.92% [.] std::generate_canonical > std::generate_canonical > std::generate_canonical > std::generate_canonical Cc: Namhyung Kim Cc: Yao Jin Cc: Jiri Olsa Signed-off-by: Milian Wolff Note how most of the large offset values are now gone. Most notably, we get proper srcline resolution for the random.h and complex headers. --- tools/perf/util/sort.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c index 006d10a0dc96..6f3d109078a3 100644 --- a/tools/perf/util/sort.c +++ b/tools/perf/util/sort.c @@ -334,7 +334,7 @@ char *hist_entry__get_srcline(struct hist_entry *he) if (!map) return SRCLINE_UNKNOWN; - return get_srcline(map->dso, map__rip_2objdump(map, he->ip), + return get_srcline(map->dso, map__objdump_2mem(map, he->ip), he->ms.sym, true, true); } -- 2.14.2