All of lore.kernel.org
 help / color / mirror / Atom feed
From: Masami Hiramatsu <mhiramat@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>,
	linux-kernel@vger.kernel.org, Namhyung Kim <namhyung@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Hemant Kumar <hemant@linux.vnet.ibm.com>,
	Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>,
	Brendan Gregg <brendan.d.gregg@gmail.com>
Subject: [PATCH perf/core v12 14/16] perf probe: Support a special SDT probe format
Date: Fri, 24 Jun 2016 18:07:43 +0900	[thread overview]
Message-ID: <20160624090743.25421.7255.stgit@devbox> (raw)
In-Reply-To: <20160624090526.25421.24216.stgit@devbox>

Support a special SDT probe format which can omit the '%' prefix
only if the SDT group name starts with "sdt_". So, for example
both of "%sdt_libc:setjump" and "sdt_libc:setjump" are acceptable
for perf probe --add.

E.g. without this:
  ----
  # perf probe -a sdt_libc:setjmp
  Semantic error :There is non-digit char in line number.
  ...
  ----
With this:
  ----
  # perf probe -a sdt_libc:setjmp
  Added new event:
    sdt_libc:setjmp      (on %setjmp in /usr/lib64/libc-2.20.so)

  You can now use it in all perf tools, such as:

  	perf record -e sdt_libc:setjmp -aR sleep 1
  ----

Suggested-by: Brendan Gregg <brendan.d.gregg@gmail.com>
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 tools/perf/Documentation/perf-probe.txt |    4 +++-
 tools/perf/util/probe-event.c           |   12 ++++++++++--
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/tools/perf/Documentation/perf-probe.txt b/tools/perf/Documentation/perf-probe.txt
index 39e3870..736da44 100644
--- a/tools/perf/Documentation/perf-probe.txt
+++ b/tools/perf/Documentation/perf-probe.txt
@@ -152,7 +152,9 @@ Probe points are defined by following syntax.
      [[GROUP:]EVENT=]SRC;PTN [ARG ...]
 
     4) Pre-defined SDT events or cached event with name
-     %[PROVIDER:]SDTEVENT
+     %[sdt_PROVIDER:]SDTEVENT
+     or,
+     sdt_PROVIDER:SDTEVENT
 
 'EVENT' specifies the name of new event, if omitted, it will be set the name of the probed function. You can also specify a group name by 'GROUP', if omitted, set 'probe' is used for kprobe and 'probe_<bin>' is used for uprobe.
 Note that using existing group name can conflict with other events. Especially, using the group name reserved for kernel modules can hide embedded events in the
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index b38548c..8b4fb63 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -1243,9 +1243,17 @@ static int parse_perf_probe_point(char *arg, struct perf_probe_event *pev)
 	if (!arg)
 		return -EINVAL;
 
-	if (arg[0] == '%') {
+	/*
+	 * If the probe point starts with '%',
+	 * or starts with "sdt_" and has a ':' but no '=',
+	 * then it should be a SDT/cached probe point.
+	 */
+	if (arg[0] == '%' ||
+	    (!strncmp(arg, "sdt_", 4) &&
+	     !!strchr(arg, ':') && !strchr(arg, '='))) {
 		pev->sdt = true;
-		arg++;
+		if (arg[0] == '%')
+			arg++;
 	}
 
 	ptr = strpbrk(arg, ";=@+%");

  parent reply	other threads:[~2016-06-24  9:07 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-24  9:05 [PATCH perf/core v12 00/16] perf-probe --cache and SDT support Masami Hiramatsu
2016-06-24  9:05 ` [PATCH perf/core v12 01/16] perf probe: Use cache entry if possible Masami Hiramatsu
2016-06-24  9:05 ` [PATCH perf/core v12 02/16] perf probe: Show all cached probes Masami Hiramatsu
2016-06-24  9:05 ` [PATCH perf/core v12 03/16] perf probe: Remove caches when --cache is given Masami Hiramatsu
2016-06-24  9:06 ` [PATCH perf/core v12 04/16] perf/sdt: ELF support for SDT Masami Hiramatsu
2016-06-24  9:06 ` [PATCH perf/core v12 05/16] perf probe: Add group name support Masami Hiramatsu
2016-06-24  9:06 ` [PATCH perf/core v12 06/16] perf buildid-cache: Scan and import user SDT events to probe cache Masami Hiramatsu
2016-06-24  9:06 ` [PATCH perf/core v12 07/16] perf probe: Accept %sdt and %cached event name Masami Hiramatsu
2016-06-24  9:06 ` [PATCH perf/core v12 08/16] perf-list: Show SDT and pre-cached events Masami Hiramatsu
2016-07-14  7:07   ` [tip:perf/core] perf list: " tip-bot for Masami Hiramatsu
2016-06-24  9:06 ` [PATCH perf/core v12 09/16] perf-list: Skip SDTs placed in invalid binaries Masami Hiramatsu
2016-06-24  9:07 ` [PATCH perf/core v12 10/16] perf: probe-cache: Add for_each_probe_cache_entry() wrapper Masami Hiramatsu
2016-06-24  9:07 ` [PATCH perf/core v12 11/16] perf probe: Allow wildcard for cached events Masami Hiramatsu
2016-06-24  9:07 ` [PATCH perf/core v12 12/16] perf probe: Search SDT/cached event from all probe caches Masami Hiramatsu
2016-06-24  9:07 ` [PATCH perf/core v12 13/16] perf probe: Support @BUILDID or @FILE suffix for SDT events Masami Hiramatsu
2016-06-24  9:07 ` Masami Hiramatsu [this message]
2016-06-24  9:07 ` [PATCH perf/core v12 15/16] perf build: Add sdt feature detection Masami Hiramatsu
2016-06-24  9:08 ` [PATCH perf/core v12 16/16] perf-test: Add a test case for SDT event Masami Hiramatsu
2016-06-24 20:25 ` [PATCH perf/core v12 00/16] perf-probe --cache and SDT support Brendan Gregg
2016-06-24 23:46   ` Masami Hiramatsu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160624090743.25421.7255.stgit@devbox \
    --to=mhiramat@kernel.org \
    --cc=acme@kernel.org \
    --cc=ananth@linux.vnet.ibm.com \
    --cc=brendan.d.gregg@gmail.com \
    --cc=hemant@linux.vnet.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.