Received: by 10.223.185.111 with SMTP id b44csp568622wrg; Fri, 9 Mar 2018 09:33:17 -0800 (PST) X-Google-Smtp-Source: AG47ELubMoRFcFRMCbNsjNDY0CSTIpP8avub9QFo9NIywAnACiDZ3QguaQag1jEmQk4k8V9jHl9z X-Received: by 10.99.116.22 with SMTP id p22mr25314773pgc.132.1520616797311; Fri, 09 Mar 2018 09:33:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520616797; cv=none; d=google.com; s=arc-20160816; b=Y45IrZjUiC2ujmL+euFDLksSsVpDam4QgZycQvtpYnh/VqufIiqoqedRsYQHREmWhp 5TzJjE1hc1yfOw/gJd3qM006z/1uQskRxoMeLaXAXro3EFtjfcfHzZdf5Eq/61slaLB4 xto/6p7ZQKry2JP8FdzSXASO29yqSPyR/uAWHu1myYrp9+j+VaqsnRUP+qzJM46VsM5z L2desW42YalmSkMsjL/otLUfHu9/ZJTR9W53UURrJZQk/hw3SBdVBxNjY7UVhT/9lv3N 2VcXC0573Qqo1aHagKuhvuaUsZwIdnYEta0deIT+HOIoyB14+/k6Ya5ry23gq899c+my avpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=Hg1dIe8vu6P8eY8/s1EVb3WaccfynZwJRBMVU+BbP94=; b=I9AUbTA0U42zrp01j6LZwdWYDHR9CbgEkJ/h/y5SC34p5MmfTlDW9sbjESznOaqUAL wgfSuc/mpYV82Co7LPRzcFF1xapbIc2RRsr7vzfXTpac08n4Y/8h79bj54mmt5shL4I7 pSGTZxQsBlpjJwBYzAzzPX0U9MmWFtLDObKnKOZSSlsq5KLJiAJ1LchVdUGw5Ug5opUp D/H7MWDM4nE4L/4FjO2UXf0WZi1oMMHDF8kWdb6mmHig4+kxF8Epvk8GDKPpqYA4jF22 hsbcGtkXC5s6nVhvikdxHWRmnGZgxcNNAXBruKFyXB7gjDKL2YBHSiTSCgvzXpRrk3xE 79dw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=I0vE8SY3; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u128si992257pgc.587.2018.03.09.09.33.02; Fri, 09 Mar 2018 09:33:17 -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; dkim=pass header.i=@linaro.org header.s=google header.b=I0vE8SY3; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932375AbeCIRbt (ORCPT + 99 others); Fri, 9 Mar 2018 12:31:49 -0500 Received: from mail-wm0-f68.google.com ([74.125.82.68]:39628 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932327AbeCIRbs (ORCPT ); Fri, 9 Mar 2018 12:31:48 -0500 Received: by mail-wm0-f68.google.com with SMTP id i3so5217046wmi.4 for ; Fri, 09 Mar 2018 09:31:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Hg1dIe8vu6P8eY8/s1EVb3WaccfynZwJRBMVU+BbP94=; b=I0vE8SY3BpL0r2DhuU0BsmGNUWmMAV0OS/FwEXbZmdwRbhFaBZkag2IHWcDsGM7Adj eyRzUF0Vq7oXN5+IBmICt6wB+tV37KJ7x0HnwPfnnQkDa1On7l/c/u9BMRNJVdQs4vqH RfnvWsms+5NYPaQXw8liFYKI1uF2UWNvN1lX8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Hg1dIe8vu6P8eY8/s1EVb3WaccfynZwJRBMVU+BbP94=; b=SG/kg+JNlpA1nmeZdvh6Cr8BTsRP0GWI7+NFTaReZ9Pb/Nav7XwiP/bqMF5bQkkcSQ B1RWA0DyWjpiLGNhgaZEwEFSGFbrjI6/qDmX8lpCbsoNiOvuqZ+pwvuPm015J4YyaO8r IrSV3dCGyElc1die9iWZwhgz+3iGWEYaV9qYU/IpqML1W6Y14qqTgqUBEzvIPOjpiLnY J+KsT7a1wIuFGUvQLkto9WRvxKeMw9yfagKMb/QIX8BPuOMCLr/PooCjZJzkeJY5J40w Vlc3hzfZsSQ+24Q74P+Y2vRG7lrcK2JreDouDskjHZn8z9ZeFsTHSvW3Qgpu5+j4BHrL bykA== X-Gm-Message-State: AElRT7GHBYJ5Tzykf4jkErI4LIuZ1Rk7O8BwPfadudiuaGX0V5joG/Ko /OLvIuhuyc/mKPpVsl/VTuv5POEj3+ITJ60ijesM1Yaq X-Received: by 10.80.208.206 with SMTP id g14mr21922934edf.295.1520616706839; Fri, 09 Mar 2018 09:31:46 -0800 (PST) MIME-Version: 1.0 Received: by 10.80.168.165 with HTTP; Fri, 9 Mar 2018 09:31:45 -0800 (PST) In-Reply-To: <1520575523-3838-1-git-send-email-leo.yan@linaro.org> References: <1520575523-3838-1-git-send-email-leo.yan@linaro.org> From: Mathieu Poirier Date: Fri, 9 Mar 2018 10:31:45 -0700 Message-ID: Subject: Re: [PATCH v2] perf machine: Fix load kernel symbol with '-k' option To: Leo Yan Cc: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Alexander Shishkin , Jiri Olsa , Namhyung Kim , linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8 March 2018 at 23:05, Leo Yan wrote: > 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 > 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; > + I have tested this on my side and things work properly. Reviewed-by: Mathieu Poirier > if (event->mmap.filename[0] == '/' || > (!is_kernel_mmap && event->mmap.filename[0] == '[')) { > map = machine__findnew_module_map(machine, event->mmap.start, > -- > 2.7.4 >