From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754461AbcHZO6R (ORCPT ); Fri, 26 Aug 2016 10:58:17 -0400 Received: from mail.kernel.org ([198.145.29.136]:35210 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754431AbcHZO6O (ORCPT ); Fri, 26 Aug 2016 10:58:14 -0400 From: Masami Hiramatsu To: Arnaldo Carvalho de Melo Cc: Masami Hiramatsu , linux-kernel@vger.kernel.org, Peter Zijlstra , Ingo Molnar , Jiri Olsa Subject: [PATCH v2 4/4] perf-probe: Ignore vmlinux Build-id when offline vmlinux given Date: Fri, 26 Aug 2016 23:57:58 +0900 Message-Id: <147222347320.5088.2582658035296667520.stgit@devbox> X-Mailer: git-send-email 2.7.4 In-Reply-To: <147214224523.23638.10155676067678947950.stgit@devbox> References: <147214224523.23638.10155676067678947950.stgit@devbox> In-Reply-To: <147214224523.23638.10155676067678947950.stgit@devbox> References: <147214224523.23638.10155676067678947950.stgit@devbox> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Ignore vmlinux build-id when user gives offline vmlinux if the command does not affect running kernel. perf-probe has several actions some of them does not change the running kernel, like --lines, --vars, and --funcs. e.g. ----- $ ./perf probe -k ./vmlinux-arm -V do_sys_open:14 Available variables at do_sys_open:14 @ char* filename int dfd int fd int flags struct filename* tmp struct open_flags op umode_t mode ----- Signed-off-by: Masami Hiramatsu --- tools/perf/builtin-probe.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/tools/perf/builtin-probe.c b/tools/perf/builtin-probe.c index b4220cd..f87996b 100644 --- a/tools/perf/builtin-probe.c +++ b/tools/perf/builtin-probe.c @@ -611,6 +611,14 @@ __cmd_probe(int argc, const char **argv, const char *prefix __maybe_unused) */ symbol_conf.try_vmlinux_path = (symbol_conf.vmlinux_name == NULL); + /* + * Except for --list, --del and --add, other command doesn't depend + * nor change running kernel. So if user gives offline vmlinux, + * ignore its buildid. + */ + if (!strchr("lda", params.command) && symbol_conf.vmlinux_name) + symbol_conf.ignore_vmlinux_buildid = true; + switch (params.command) { case 'l': if (params.uprobes) { @@ -655,13 +663,6 @@ __cmd_probe(int argc, const char **argv, const char *prefix __maybe_unused) } break; case 'D': - /* - * If user gives offline vmlinux, ignore buildid, since - * --definition doesn't change running kernel. - */ - if (symbol_conf.vmlinux_name) - symbol_conf.ignore_vmlinux_buildid = true; - /* fall through */ case 'a': /* Ensure the last given target is used */