From: Frederic Weisbecker <fweisbec@gmail.com>
To: Masami Hiramatsu <mhiramat@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>, Ingo Molnar <mingo@elte.hu>,
lkml <linux-kernel@vger.kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Arnaldo Carvalho de Melo <acme@redhat.com>,
Mike Galbraith <efault@gmx.de>, Paul Mackerras <paulus@samba.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Christoph Hellwig <hch@infradead.org>,
Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
Jim Keniston <jkenisto@us.ibm.com>,
"Frank Ch. Eigler" <fche@redhat.com>,
systemtap <systemtap@sources.redhat.com>,
DLE <dle-develop@lists.sourceforge.net>
Subject: Re: [PATCH tracing/kprobes v2 0/5] tracing/kprobes, perf: perf probe support take 2
Date: Sat, 3 Oct 2009 03:25:31 +0200 [thread overview]
Message-ID: <20091003012528.GC4828@nowhere> (raw)
In-Reply-To: <20091002214834.30906.86502.stgit@dhcp-100-2-132.bos.redhat.com>
On Fri, Oct 02, 2009 at 05:48:34PM -0400, Masami Hiramatsu wrote:
> Hi,
>
> These patches introduce 'perf probe' command and update kprobe-tracer.
> perf probe command allows you to add new probe points by C line number
> and local variable names.
>
> This version fixes some bugs, changes subcommand name from kprobe to
> probe and use spaces for separator instead of ',' for visibility (this
> also make it easy to support probe list from stdin).
>
> Usage
> -----
> perf probe [<options>] -P 'PROBEDEF' [-P 'PROBEDEF' ...]
>
> -k, --vmlinux <file> vmlinux/module pathname
> -r, --release <rel> kernel release
> -P, --probe <p|r:[GRP/]NAME FUNC[+OFFS][@SRC]|@SRC:LINE [ARG ...]>
> probe point definition, where
> p: kprobe probe
> r: kretprobe probe
> GRP: Group name (optional)
> NAME: Event name
> FUNC: Function name
> OFFS: Offset from function entry (in byte)
> SRC: Source code path
> LINE: Line number
> ARG: Probe argument (local variable name or
> kprobe-tracer argument format is supported.)
>
> Examples
> --------
> 1) Add a new kprobe probe on a line of C source code.
> ./perf probe -P 'p:myprobe @fs/read_write.c:285 file buf count'
> Adding new event: p:myprobe vfs_read+57 file=%bx buf=%si count=%ax
Nice! Great thing.
One neat, at a first glance, file=%bx buf=%si look like a format
definition.
How about using file=bx ? Or does that introduce any ambiguities
with kprobes definitions syntax?
>
> 2) Add a new kretprobe probe on a function return.
> ./perf probe -P 'r:myretprobe vfs_read $rv'
> Adding new event: r:myretprobe vfs_read+0 $rv
The '$' character may perhaps also confuse bash scripts that create
perf probe.
> 3) Check it in the perf list.
> ./perf list
> ...
> rNNN [raw hardware event descriptor]
>
> kprobes:myprobe [Tracepoint event]
> kprobes:myretprobe [Tracepoint event]
> skb:kfree_skb [Tracepoint event]
> ...
>
> 4) Record the event by perf
> ./perf record -f -e kprobes:myprobe:record -F 1 -a ls
> ...
> [ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 0.081 MB perf.data (~3540 samples) ]
>
> 5) Trace the event
> ./perf trace
> perf-11445 [000] 95862.048894383: myprobe: (c04bbed5) file=dae15e80 buf=b78b2000 count=400
> perf-11445 [000] 95862.049066533: myprobe: (c04bbed5) file=dae15d80 buf=b78b2000 count=400
> perf-11445 [000] 95862.049134394: myprobe: (c04bbed5) file=dae15d80 buf=b78b2000 count=400
> perf-11445 [000] 95862.049171495: myprobe: (c04bbed5) file=dae15a80 buf=b78b2000 count=400
>
> NOTE
> ----
> perf still fails to parse format if arguments have special charactors
> (e.g. $rv, +10($sp) etc.) So, tracing myretprobe will fail with this
> version. This will be solved by naming arguments automatically if it
> doesn't have C-language name.
>
> TODO
> ----
> - Support sys_perf_counter_open (non-root)
Hmm, we really want it to be only usable by the root
(except if the policy is tuned to allow that, but that's
managed by perf already).
> - Input from stdin/output to stdout
> - Non-auto static variable
> - Fields of data structures (var->field)
> - Type support
> - Bit fields
> - Array (var[N])
> - Dynamic array indexing (var[var2])
> - String/dynamic arrays (var:string, var[N..M])
> - Force Type casting ((type)var)
> - Non-inline search
> - libdw, libdwfl
> - etc.
>
> Thank you,
>
Cool, I'm reviewing/testing it and if no rough problem
arise I'll apply it.
Thanks a lot!
next prev parent reply other threads:[~2009-10-03 1:25 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-02 21:48 [PATCH tracing/kprobes v2 0/5] tracing/kprobes, perf: perf probe support take 2 Masami Hiramatsu
2009-10-02 21:48 ` [PATCH tracing/kprobes v2 1/5] tracing/kprobes: Rename special variables syntax Masami Hiramatsu
2009-10-03 1:54 ` Frederic Weisbecker
2009-10-04 5:21 ` Masami Hiramatsu
2009-10-05 16:59 ` Masami Hiramatsu
2009-10-05 19:26 ` Frederic Weisbecker
2009-10-05 21:05 ` Masami Hiramatsu
2009-10-05 21:11 ` Frederic Weisbecker
2009-10-06 0:12 ` Steven Rostedt
2009-10-06 14:23 ` Masami Hiramatsu
2009-10-06 22:47 ` Frederic Weisbecker
2009-10-07 1:13 ` Masami Hiramatsu
2009-10-07 16:28 ` Frederic Weisbecker
2009-10-07 0:15 ` Steven Rostedt
2009-10-07 2:57 ` Masami Hiramatsu
2009-10-06 22:42 ` Frederic Weisbecker
2009-10-05 19:18 ` Frederic Weisbecker
2009-10-05 19:38 ` Frederic Weisbecker
2009-10-05 20:18 ` Masami Hiramatsu
2009-10-05 20:58 ` Frederic Weisbecker
2009-10-05 21:11 ` Masami Hiramatsu
2009-10-05 21:21 ` Frederic Weisbecker
2009-10-05 21:34 ` Masami Hiramatsu
2009-10-05 21:55 ` Frederic Weisbecker
2009-10-05 22:09 ` Frederic Weisbecker
2009-10-05 22:38 ` Masami Hiramatsu
2009-10-05 22:42 ` Masami Hiramatsu
2009-10-02 21:48 ` [PATCH tracing/kprobes v2 2/5] tracing/kprobes: Avoid field name confliction Masami Hiramatsu
2009-10-06 0:16 ` Steven Rostedt
2009-10-06 1:07 ` Masami Hiramatsu
2009-10-02 21:48 ` [PATCH tracing/kprobes v2 3/5] tracing/kprobes: Rename fixed field name Masami Hiramatsu
2009-10-02 21:49 ` [PATCH tracing/kprobes v2 4/5] perf: Add perf probe subcommand for kprobe-event setup helper Masami Hiramatsu
2009-10-06 0:29 ` Steven Rostedt
2009-10-06 0:57 ` Masami Hiramatsu
2009-10-06 1:20 ` Steven Rostedt
2009-10-06 1:43 ` Arnaldo Carvalho de Melo
2009-10-06 9:03 ` Peter Zijlstra
2009-10-07 3:22 ` Masami Hiramatsu
2009-10-02 21:49 ` [PATCH tracing/kprobes v2 5/5] perf: kprobe command supports without libdwarf Masami Hiramatsu
2009-10-03 1:25 ` Frederic Weisbecker [this message]
2009-10-05 14:54 ` [PATCH tracing/kprobes v2 0/5] tracing/kprobes, perf: perf probe support take 2 Frank Ch. Eigler
2009-10-05 15:10 ` 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=20091003012528.GC4828@nowhere \
--to=fweisbec@gmail.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@redhat.com \
--cc=ananth@in.ibm.com \
--cc=dle-develop@lists.sourceforge.net \
--cc=efault@gmx.de \
--cc=fche@redhat.com \
--cc=hch@infradead.org \
--cc=jkenisto@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mhiramat@redhat.com \
--cc=mingo@elte.hu \
--cc=paulus@samba.org \
--cc=rostedt@goodmis.org \
--cc=systemtap@sources.redhat.com \
--cc=tglx@linutronix.de \
/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.