From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933737AbbDJNW3 (ORCPT ); Fri, 10 Apr 2015 09:22:29 -0400 Received: from mail.kernel.org ([198.145.29.136]:38398 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933696AbbDJNWR (ORCPT ); Fri, 10 Apr 2015 09:22:17 -0400 Date: Fri, 10 Apr 2015 10:22:19 -0300 From: Arnaldo Carvalho de Melo To: Masami Hiramatsu Cc: Peter Zijlstra , Linux Kernel Mailing List , David Ahern , namhyung@kernel.org, Jiri Olsa , Ingo Molnar Subject: Re: [PATCH perf/core 2/2] perf-probe: Check the orphaned -x option Message-ID: <20150410132219.GE4521@kernel.org> References: <20150331133348.GF9438@kernel.org> <20150401102541.17137.75477.stgit@localhost.localdomain> <5527730D.8030508@hitachi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5527730D.8030508@hitachi.com> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Fri, Apr 10, 2015 at 03:51:57PM +0900, Masami Hiramatsu escreveu: > Ping? Sorry for the delay, thought I had processed those already, done now, will be in my next pull req. Thanks for working on it, I tested both and all seems fine, - Arnaldo > (2015/04/01 19:25), Masami Hiramatsu wrote: > > To avoid probing in unintended binary, the orphaned -x option > > must be checked and warned. > > > > Without this patch, following command sets up the probe in > > the kernel. > > ----- > > # perf probe -a strcpy -x ./perf > > Added new event: > > probe:strcpy (on strcpy) > > > > You can now use it in all perf tools, such as: > > > > perf record -e probe:strcpy -aR sleep 1 > > ----- > > > > But in this case, it seems that the user may want to probe > > in the perf binary. With this patch, perf-probe correctly > > handles the orphaned -x. > > ----- > > # perf probe -a strcpy -x ./perf > > Error: -x/-m must follow the probe definitions. > > ... > > ----- > > > > Reported-by: Jiri Olsa > > Signed-off-by: Masami Hiramatsu > > --- > > tools/perf/builtin-probe.c | 10 ++++++++++ > > 1 file changed, 10 insertions(+) > > > > diff --git a/tools/perf/builtin-probe.c b/tools/perf/builtin-probe.c > > index 2df23e1..f7b1af6 100644 > > --- a/tools/perf/builtin-probe.c > > +++ b/tools/perf/builtin-probe.c > > @@ -56,6 +56,7 @@ static struct { > > bool mod_events; > > bool uprobes; > > bool quiet; > > + bool target_used; > > int nevents; > > struct perf_probe_event events[MAX_PROBES]; > > struct strlist *dellist; > > @@ -82,6 +83,7 @@ static int parse_probe_event(const char *str) > > pev->target = strdup(params.target); > > if (!pev->target) > > return -ENOMEM; > > + params.target_used = true; > > } > > > > /* Parse a perf-probe command into event */ > > @@ -107,6 +109,7 @@ static int set_target(const char *ptr) > > params.target = strdup(ptr); > > if (!params.target) > > return -ENOMEM; > > + params.target_used = false; > > > > found = 1; > > buf = ptr + (strlen(ptr) - 3); > > @@ -207,6 +210,7 @@ static int opt_set_target(const struct option *opt, const char *str, > > } > > free(params.target); > > params.target = tmp; > > + params.target_used = false; > > ret = 0; > > } > > > > @@ -491,6 +495,12 @@ __cmd_probe(int argc, const char **argv, const char *prefix __maybe_unused) > > } > > > > if (params.nevents) { > > + /* Ensure the last given target is used */ > > + if (params.target && !params.target_used) { > > + pr_warning(" Error: -x/-m must follow the probe definitions.\n"); > > + usage_with_options(probe_usage, options); > > + } > > + > > ret = add_perf_probe_events(params.events, params.nevents, > > params.max_probe_points, > > params.force_add); > > > > > > > -- > Masami HIRAMATSU > Linux Technology Research Center, System Productivity Research Dept. > Center for Technology Innovation - Systems Engineering > Hitachi, Ltd., Research & Development Group > E-mail: masami.hiramatsu.pt@hitachi.com >