Re: [PATCH perf/core v5 11/15] perf probe: Accept %sdt and %cached event name

From: Masami Hiramatsu
Date: Thu Apr 28 2016 - 20:13:41 EST


On Thu, 28 Apr 2016 14:26:05 +0900
Namhyung Kim <namhyung@xxxxxxxxxx> wrote:

> On Thu, Apr 28, 2016 at 03:38:49AM +0900, Masami Hiramatsu wrote:
> > From: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
> >
> > To improbe usability, support %[PROVIDER:]SDTEVENT format to
> > add new probes on SDT and cached events.
> >
> > e.g.
> > ----
> > # perf probe -x /lib/libc-2.17.so %lll_lock_wait_private
> > Added new event:
> > sdt_libc:lll_lock_wait_private (on %lll_lock_wait_private in
> > /usr/lib/libc-2.17.so)
> >
> > You can now use it in all perf tools, such as:
> >
> > perf record -e sdt_libc:lll_lock_wait_private -aR sleep 1
> >
> > # perf probe -l | more
> > sdt_libc:lll_lock_wait_private (on __lll_lock_wait_private+21
> > in /usr/lib/libc-2.17.so)
> > ----
> >
> > Note that this is not only for SDT events, but also normal
> > events with event-name.
> >
> > e.g. define "myevent" on cache (-n doesn't add the real probe)
> > ----
> > # perf probe -x ./perf --cache -n --add 'myevent=dso__load $params'
> > ----
> > Reuse the "myevent" from cache as below.
> > ----
> > # perf probe -x ./perf %myevent
> > ----
> >
> > TODO:
> > Wildcard is not supported yet.
> >
> > Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
> > ---
> > tools/perf/Documentation/perf-probe.txt | 3 +
> > tools/perf/util/probe-event.c | 78 ++++++++++++++++++++++---------
> > tools/perf/util/probe-event.h | 1
> > tools/perf/util/probe-file.c | 9 ++++
> > 4 files changed, 69 insertions(+), 22 deletions(-)
> >
> > diff --git a/tools/perf/Documentation/perf-probe.txt b/tools/perf/Documentation/perf-probe.txt
> > index 7a258e9..43523be 100644
> > --- a/tools/perf/Documentation/perf-probe.txt
> > +++ b/tools/perf/Documentation/perf-probe.txt
> > @@ -151,6 +151,8 @@ Probe points are defined by following syntax.
> > 3) Define event based on source file with lazy pattern
> > [[GROUP:]EVENT=]SRC;PTN [ARG ...]
> >
> > + 4) Pre-defined SDT events
> > + %[PROVIDER:]SDTEVENT
>
> How about changing it to:
>
> 4) Pre-defined (SDT) or cached events
> %EVENTNAME
>
> ?

Agreed, because cached events can be used for that too.
I think %[GROUP:]EVENT is more accurate.

> Btw, is it possible to use group name here?

Yes :)

> The SDT will use
> sdt_<libname> for group name and <provider>_<event> for event name,
> right?

No, the provider name is used for the group name as "sdt_<provider>".

> So is it for cached events and does it support defining group
> name when added like below?
>
> # perf probe -x ./perf --cache --add 'mygroup:myevent=main'

Yes, it is done by 9/15 ("perf probe: Add group name support") :)

Thank you,



--
Masami Hiramatsu <mhiramat@xxxxxxxxxx>