Received: by 10.223.185.116 with SMTP id b49csp5516819wrg; Wed, 7 Mar 2018 13:11:09 -0800 (PST) X-Google-Smtp-Source: AG47ELvB7sjQWMJBG8XCiph3nY8puvEKwwY9LVeYHxHGL9jH8+edZGqDCg8tmO+aVP1BGQNHtqTG X-Received: by 10.98.110.71 with SMTP id j68mr23691948pfc.93.1520457068950; Wed, 07 Mar 2018 13:11:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520457068; cv=none; d=google.com; s=arc-20160816; b=PvMh1SSJnh5u8VBrJwPhqwyXK364MOr+gFtOoB2DAWxAgIRwaQgjUfAyvn45K7ygKK yumACtvN71oDjTKo31tSkG9am6D6z6SY68Enpjq9brnoXlxNg0cmf6dXCnt5wssLcnzD 4I/eLMhSgcFC1X1/umVBZzkzMLDQtNzrSJksl0oipgQ86ZnDcPjRwgvtVo+29N28GW7e nqyuIxK001uY8djXIWcLvKDhYzhFt85I3jsyn8WbfCEqt2BnN490KHgJboFoSfA9L3Y9 qWbJXpoYtEzH1ptNN8y5pdqbHFu2Maw67qiDcpOy3Ks2DIwshYRLfqeZMEfaKU9xpYnc /nNw== 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=NzeluI1Yd6zPepqGWsVDGhIb28a/el+kTTsTJToWzww=; b=U5FQqSfeKpID80Blu93mcEgfGYS7ZzoCuE/vL/t8eCkJgph2lVTAccxftpZIwslWHT B+txjy2BVeYdDig4CjODLYDmiZLIDo63AgUgSOoEudMRiFUwQP/odB21g1WOU+Or4DMv /aSOvhBcRJjKAJqOg1GipVoYUHDdDhPL8tea5a9dL8QzOGlnvKamaREmkNPT2Rl5OSKl VGnnzSXJqVApN4rsR2gsA9tkO+OVjhFkmX5YExpmjHUeigu7hD2DEqoBjOITipSGx/uR SDTvQaSIqMskd/uQkdFLTrtu16DxBS6+mR40rY/oQIkf/XKdLBjq8hVy3mC6TgUaBLWZ 4QeA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=jpnmoNCm; 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 q11si11861141pgf.90.2018.03.07.13.10.54; Wed, 07 Mar 2018 13:11:08 -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=jpnmoNCm; 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 S933870AbeCGVJ1 (ORCPT + 99 others); Wed, 7 Mar 2018 16:09:27 -0500 Received: from mail-wm0-f66.google.com ([74.125.82.66]:50640 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933706AbeCGVJZ (ORCPT ); Wed, 7 Mar 2018 16:09:25 -0500 Received: by mail-wm0-f66.google.com with SMTP id w128so7484276wmw.0 for ; Wed, 07 Mar 2018 13:09:25 -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=NzeluI1Yd6zPepqGWsVDGhIb28a/el+kTTsTJToWzww=; b=jpnmoNCmoae2SGIxRONnclD4n1iNTSMJ8IQqS5/w8fN7aVzXq+6YuVv9OfgYPzdwzx pJEdLbY1wtkkP8v9IxefFVuNr/gAlewGHjRVzqbpu6X9WAQTzueG4h+fQ2KI7SiJk5gF 1YS7Odx1NCUE9Za414Q5UrleFd8UX+gXPhPbw= 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=NzeluI1Yd6zPepqGWsVDGhIb28a/el+kTTsTJToWzww=; b=TxbUrkgJ3MIbmwYBnxiIf41CI2lmqJY9W7CZLE9LgDPCIsaJ0pRs+mHqKaXf1uz2Fp 1cAUapoCsnaEd9WTu/YZT9WWHpeOtUMIITFG+tM9YsxOdGRghu2oFYNL6qW/EM1vnqMz ASVp2ZJsVzuc30HUmqOb+VNEoB/SoWzYiT2IXbze0hhkALG4xwbWM16weo9FJlT6CLbu y5HrkEtWoOPLgeObIODLpjN2yklQ/lHe0XlLwCysgKRPKFljbWSz51L9xuN8hHT2u0oQ 6pVjoplPfxRc9TjbP8yTGmg3eaqVAUWRgiCI8mO90kZE9L8fbWPX/8mtqnFCfKKFuX7l 23/A== X-Gm-Message-State: AElRT7Fa5Qcrbk/BZ8RxyWsF2/cXXWrVyZ+KyzG1XbWmCGvtS8HTZTMJ AHMc/xnTT3Hiues23SEKUmrBCRVs94CP0lVjY5gpkKWVMoE= X-Received: by 10.80.162.199 with SMTP id 65mr13694101edm.255.1520456964780; Wed, 07 Mar 2018 13:09:24 -0800 (PST) MIME-Version: 1.0 Received: by 10.80.168.165 with HTTP; Wed, 7 Mar 2018 13:09:24 -0800 (PST) In-Reply-To: <1519715872-31050-1-git-send-email-leo.yan@linaro.org> References: <1519715872-31050-1-git-send-email-leo.yan@linaro.org> From: Mathieu Poirier Date: Wed, 7 Mar 2018 14:09:24 -0700 Message-ID: Subject: Re: [PATCH] perf machine: Fix load kernel symbol with '-k' option To: Leo Yan , Jiri Olsa , Arnaldo Carvalho de Melo Cc: Peter Zijlstra , Ingo Molnar , Alexander Shishkin , 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 Hi Leo, On 27 February 2018 at 00:17, 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 > 'machine->mmap_name', when its start char is not '[' then we can know > it includes vmlinux path string specified for option '-k'. For this > case it sets 'is_kernel_mmap = 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'. > > 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..ffd709d 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; > + /* > + * If machine mmap_name doesn't start with char '[', it includes > + * the specified kernel vmlinux name with option '-k'. So set > + * is_kernel_mmap as true to create machine symbol map. > + */ > + if (machine->mmap_name[0] != '[') I have tested your patch and it indeed solves the problem but I suggest to replace the above with: if (symbol_conf.vmlinux_name) That is consistent with the test in function machine__set_mmap_name() and doesn't rely on a user specified input to operate properly. Thanks, Mathieu > + 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 >