Received: by 10.223.185.111 with SMTP id b44csp579511wrg; Fri, 9 Mar 2018 09:45:05 -0800 (PST) X-Google-Smtp-Source: AG47ELt0aeI8lZjmvInjbZ9nmPH+9Ez0elDM5dUsYKKEemZU61mJBQxzYjkdCcbKUvddwbNtOh04 X-Received: by 10.99.116.69 with SMTP id e5mr25512136pgn.437.1520617505588; Fri, 09 Mar 2018 09:45:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520617505; cv=none; d=google.com; s=arc-20160816; b=kzDGfDftFV6PSdaDpiB+OIdUI6lwlZOiRRXEYfTIR8zOSX5UkQxaypD9FMO7WGreLs d2wUaI2yT+J2RHk3wX4kJhSFFoC0IOOPNDxK24KyUA75f31JhSeerVpEUGJGGzgs8uJz N5jNxynt1YMIR08X17pXwz5GLltDkuwhpIVyH7T++m22OT1mJUTwNJf5Cf9tsg/0qiHl DC+9okz74j9Aw4/DcitUXBqBRezO1eq3VYhzOSh4CSfiG/ssNha5gNf7OGxdb0lVY/NV yQFu0whLNF58DPlgpA7WOzUAkAEjEbi/89JBQhK24IWkCpp5wp4GIUGD5qxD0UTn8pM6 dtZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dmarc-filter:arc-authentication-results; bh=hrNO7VTaXcLtGvIZl+ztulhL73nwUPKL6XXJsZ+wfoA=; b=IaAZH0pJre9qO4/OmzWEa6J2Yz8rEuc6nud/XuUw6b1rANy+dWmT9g7QYBEAtD4sR2 PHPYJaTzvFGmPdKvs7+KXWrDzY68TXTGzO1oiTQYpq6+Pq/oms9SYGvFtHpHLXNUEpHz M/ldlOlz2/CCG9KBZ6TE/ZB3qnCAVnPSsbNdxMf5qY8gxJceqYi8oox8M0r6h2Fsa/du vA6YXS1ZgaAMHUSNnZBeWSQGR68yzYAu8wpbi6aomy1TX7hsgJu8KezmkAMO7eX4Vo0r AVGN+ETclqn91FtaXpoOYhDtaxpYSrAGY7QWCJUNN5BCqQsW3+VhcCHIbRoq/+o9wiq5 gzmA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y24-v6si1196578plr.31.2018.03.09.09.44.50; Fri, 09 Mar 2018 09:45:05 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932355AbeCIRnO (ORCPT + 99 others); Fri, 9 Mar 2018 12:43:14 -0500 Received: from mail.kernel.org ([198.145.29.99]:58220 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932085AbeCIRnN (ORCPT ); Fri, 9 Mar 2018 12:43:13 -0500 Received: from jouet.infradead.org (unknown [190.15.121.82]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 27ECC205F4; Fri, 9 Mar 2018 17:43:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 27ECC205F4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=acme@kernel.org Received: by jouet.infradead.org (Postfix, from userid 1000) id E0DF01450F2; Fri, 9 Mar 2018 14:42:54 -0300 (-03) Date: Fri, 9 Mar 2018 14:42:54 -0300 From: Arnaldo Carvalho de Melo To: Jiri Olsa Cc: Leo Yan , Peter Zijlstra , Ingo Molnar , Alexander Shishkin , Namhyung Kim , linux-kernel@vger.kernel.org, Mathieu Poirier Subject: Re: [PATCH v2] perf machine: Fix load kernel symbol with '-k' option Message-ID: <20180309174254.GH8347@kernel.org> References: <1520575523-3838-1-git-send-email-leo.yan@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1520575523-3838-1-git-send-email-leo.yan@linaro.org> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.9.1 (2017-09-22) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Fri, Mar 09, 2018 at 02:05:23PM +0800, Leo Yan escreveu: > On Hikey arm64 octa A53 platform, when use command './perf report -v > -k vmlinux --stdio' it outputs below error info, and it skips to load > kernel symbol and doesn't print symbol for event: > Failed to open [kernel.kallsyms]_text, continuing without symbols. > > The regression is introduced by commit ("8c7f1bb37b29 perf machine: Move > kernel mmap name into struct machine"), which changes the logic for commit 8c7f1bb37b29f140e08175132f3abb4d5ad229fc Author: Jiri Olsa Date: Thu Feb 15 13:26:30 2018 +0100 perf machine: Move kernel mmap name into struct machine Jiri, can you please check this and Ack? - Arnaldo > machine mmap_name by removing function machine__mmap_name() and always > use 'machine->mmap_name'. Comparing difference between > machine__mmap_name() and 'machine->mmap_name', the later one includes > the string for specified kernel vmlinux string with option '-k' in > command, but the old function machine__mmap_name() ignores vmlinux > path string. As result, event's mmap file name doesn't match with > machine mmap file name anymore and it skips to load kernel symbol from > vmlinux file. > > To resolve this issue, this patch adds extra checking for > 'symbol_conf.vmlinux_name', when it has been set string so we can know > it includes vmlinux path string specified for option '-k'. For this > case it sets 'is_kernel_mmap' to true and run into flow to load kernel > symbol from vmlinux. > > This patch has been verified with two commands: './perf report -v > -k vmlinux --stdio' and './perf script -v -F cpu,event,ip,sym,symoff > -k vmlinux'. > > Suggested-by: Mathieu Poirier > Signed-off-by: Leo Yan > --- > tools/perf/util/machine.c | 15 ++++++++++++--- > 1 file changed, 12 insertions(+), 3 deletions(-) > > diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c > index 12b7427..3125871 100644 > --- a/tools/perf/util/machine.c > +++ b/tools/perf/util/machine.c > @@ -1299,9 +1299,18 @@ static int machine__process_kernel_mmap_event(struct machine *machine, > else > kernel_type = DSO_TYPE_GUEST_KERNEL; > > - is_kernel_mmap = memcmp(event->mmap.filename, > - machine->mmap_name, > - strlen(machine->mmap_name) - 1) == 0; > + /* > + * When symbol_conf.vmlinux_name is not NULL, it includes the specified > + * kernel vmlinux path with option '-k'. So set 'is_kernel_mmap' to > + * true for creating machine symbol map. > + */ > + if (symbol_conf.vmlinux_name) > + is_kernel_mmap = true; > + else > + is_kernel_mmap = memcmp(event->mmap.filename, > + machine->mmap_name, > + strlen(machine->mmap_name) - 1) == 0; > + > if (event->mmap.filename[0] == '/' || > (!is_kernel_mmap && event->mmap.filename[0] == '[')) { > map = machine__findnew_module_map(machine, event->mmap.start, > -- > 2.7.4