From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
To: Ingo Molnar <mingo@kernel.org>,
Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>,
David Ahern <dsahern@gmail.com>,
lkml <linux-kernel@vger.kernel.org>,
"Steven Rostedt (Red Hat)" <rostedt@goodmis.org>,
Oleg Nesterov <oleg@redhat.com>,
"David A. Long" <dave.long@linaro.org>,
systemtap@sourceware.org, yrl.pp-manager.tt@hitachi.com,
Namhyung Kim <namhyung@kernel.org>
Subject: [PATCH -tip 0/3] perf-probe: Dwarf support for uprobes
Date: Fri, 20 Dec 2013 10:02:55 +0000 [thread overview]
Message-ID: <20131220100255.7169.19384.stgit@kbuild-fedora.novalocal> (raw)
Hi,
Here is the series of perf-probe patches which adds
dwarf(debuginfo) support for uprobes.
Currently perf-probe doesn't support debuginfo for uprobes.
The lack of the debuginfo support for uprobes sometimes
confuses users (or makes them cry) because they can't use
perf-probe as for kprobes case, and that is not what I hope.
So I tried to add debuginfo support for uprobes on
perf-probe. Actually, this is not completely done yet.
We still need to add some features for make it perfect.
However, this series can provide minimum debuginfo
support for uprobes.
For example)
- Shows the probe-able lines of the given function
----
# ./perf probe -x perf --line map__load
<map__load@/home/fedora/ksrc/linux-2.6/tools/perf/util/map.c:0>
0 int map__load(struct map *map, symbol_filter_t filter)
1 {
2 const char *name = map->dso->long_name;
int nr;
5 if (dso__loaded(map->dso, map->type))
6 return 0;
8 nr = dso__load(map->dso, map, filter);
9 if (nr < 0) {
10 if (map->dso->has_build_id) {
----
- Shows the available variables of the given line
----
# ./perf probe -x perf --vars map__load:8
Available variables at map__load:8
@<map__load+96>
char* name
struct map* map
symbol_filter_t filter
@<map__find_symbol+112>
char* name
symbol_filter_t filter
@<map__find_symbol_by_name+136>
char* name
symbol_filter_t filter
@<map_groups__find_symbol_by_name+176>
char* name
struct map* map
symbol_filter_t filter
----
- Set a probe with available vars on the given line
----
# ./perf probe -x perf --add 'map__load:8 $vars'
Added new events:
probe_perf:map__load (on map__load:8 with $vars)
probe_perf:map__load_1 (on map__load:8 with $vars)
probe_perf:map__load_2 (on map__load:8 with $vars)
probe_perf:map__load_3 (on map__load:8 with $vars)
You can now use it in all perf tools, such as:
perf record -e probe_perf:map__load_3 -aR sleep 1
----
To complete this requires Namhyung's uprobe
fetch-method updates which is almost done on LKML.
TODO:
- Convert data symbol name in arguments to address
offset value.
- Support distro style debuginfo path (/usr/lib/debug/...)
---
Masami Hiramatsu (3):
[CLEANUP] perf-probe: Expand given path to absolute path
perf-probe: Support dwarf on uprobe events
perf-probe: Use the actual address as a hint for uprobes
tools/perf/builtin-probe.c | 11 ++
tools/perf/util/probe-event.c | 247 +++++++++++++++++++++++++++-------------
tools/perf/util/probe-event.h | 1
tools/perf/util/probe-finder.c | 1
4 files changed, 176 insertions(+), 84 deletions(-)
--
Masami HIRAMATSU
IT Management Research Dept. Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@hitachi.com
next reply other threads:[~2013-12-20 10:08 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-20 10:02 Masami Hiramatsu [this message]
2013-12-20 10:02 ` [PATCH -tip 1/3] [CLEANUP] perf-probe: Expand given path to absolute path Masami Hiramatsu
2013-12-20 18:00 ` Arnaldo Carvalho de Melo
2013-12-22 21:35 ` Masami Hiramatsu
2013-12-23 14:28 ` Arnaldo Carvalho de Melo
2013-12-24 6:51 ` Masami Hiramatsu
2013-12-23 6:17 ` Namhyung Kim
2013-12-23 10:46 ` Masami Hiramatsu
2013-12-20 10:02 ` [PATCH -tip 2/3] perf-probe: Support dwarf on uprobe events Masami Hiramatsu
2013-12-20 18:01 ` Arnaldo Carvalho de Melo
2013-12-22 21:39 ` Masami Hiramatsu
2013-12-23 14:34 ` Arnaldo Carvalho de Melo
2013-12-24 1:03 ` Masami Hiramatsu
2013-12-20 10:03 ` [PATCH -tip 3/3] perf-probe: Use the actual address as a hint for uprobes Masami Hiramatsu
2013-12-20 18:03 ` Arnaldo Carvalho de Melo
2013-12-22 21:54 ` Masami Hiramatsu
2013-12-23 7:46 ` Namhyung Kim
2013-12-23 10:50 ` Masami Hiramatsu
2013-12-24 7:54 ` Namhyung Kim
2013-12-24 8:27 ` Masami Hiramatsu
2013-12-24 8:46 ` Namhyung Kim
2013-12-24 15:03 ` 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=20131220100255.7169.19384.stgit@kbuild-fedora.novalocal \
--to=masami.hiramatsu.pt@hitachi.com \
--cc=acme@ghostprotocols.net \
--cc=dave.long@linaro.org \
--cc=dsahern@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=oleg@redhat.com \
--cc=rostedt@goodmis.org \
--cc=srikar@linux.vnet.ibm.com \
--cc=systemtap@sourceware.org \
--cc=yrl.pp-manager.tt@hitachi.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®