From: Akihiro Nagai <akihiro.nagai.hw@hitachi.com>
To: Arnaldo Carvalho de Melo <acme@infradead.org>,
Ingo Molnar <mingo@elte.hu>,
Peter Zijlstra <peterz@infradead.org>,
Frederic Weisbecker <fweisbec@gmail.com>,
David Ahern <dsahern@gmail.com>
Cc: linux-kernel@vger.kernel.org,
Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>,
pp-manager@sdl.hitachi.co.jp
Subject: [PATCH -tip 0/4] perf script: add BTS analysis features
Date: Tue, 28 Jun 2011 16:40:19 +0900 [thread overview]
Message-ID: <20110628074019.4269.32109.stgit@linux3> (raw)
Hi Frederic, David,
This patch series adds the functions to analyze BTS logs to perf-script and,
makes perf-script more informative.
The patches add the following functions.
- Resolve DSOs and symbols for BTS's branch_from addresses
- Resolve DSOs and symbols for user-space address
- Show the offset of symbols with '--show-symbol-offset' option.
- Resolve the real path of [kernel.kallsym] using
'--show-kernel-path' option.
Usage:
First, we get the BTS log with the following command.
# perf record -e branches:u -c 1 -d <command>
Second, analyze it.
# perf script -f ip,addr,sym,dso [--show-symbol-offset] [--show-kernel-path]
This command's output format is:
<branch_to addr> <branch_to function(+offset)> <branch_to DSO> <branch_from addr> <branch_from function(+offset)> <branch_from DSO>
Output sample:
# perf record -e branches:u -c 1 -d ls
[snip]
# perf script -f ip,addr,sym,dso --show-symbol-offset --show-kernel-path
301ec016b0 (/lib/modules/3.0.0-rc3-tip+/build/vmlinux) ffffffff81467612 irq_return+0x0 (/lib/modules/3.0.0-rc3-tip+/build/vmlinux)
301ec016b0 _start+0x0 (/lib64/ld-2.14.so) ffffffff81467612 irq_return+0x0 (/lib/modules/3.0.0-rc3-tip+/build/vmlinux)
301ec04b70 _dl_start+0x0 (/lib64/ld-2.14.so) 301ec016b3 _start+0x3 (/lib64/ld-2.14.so)
301ec04b70 _dl_start+0x0 (/lib64/ld-2.14.so) ffffffff81467612 irq_return+0x0 (/lib/modules/3.0.0-rc3-tip+/build/vmlinux)
301ec04b96 _dl_start+0x26 (/lib64/ld-2.14.so) ffffffff81467612 irq_return+0x0 (/lib/modules/3.0.0-rc3-tip+/build/vmlinux)
301ec04b9d _dl_start+0x2d (/lib64/ld-2.14.so) ffffffff81467612 irq_return+0x0 (/lib/modules/3.0.0-rc3-tip+/build/vmlinux)
301ec04c0d _dl_start+0x9d (/lib64/ld-2.14.so) 301ec04beb _dl_start+0x7b (/lib64/ld-2.14.so)
[snip]
401fd0 main+0x0 (/root/bin/ls) 301f021399 __libc_start_main+0xe9 (/lib64/libc-2.14.so)
409ad0 set_program_name+0x0 (/root/bin/ls) 401ff3 main+0x23 (/root/bin/ls)
409ad0 set_program_name+0x0 (/root/bin/ls) ffffffff81467612 irq_return+0x0 (/lib/modules/3.0.0-rc3-tip+/build/vmlinux)
401ca8 strrchr@plt+0x0 (/root/bin/ls) 409ade set_program_name+0xe (/root/bin/ls)
401cae strrchr@plt+0x6 (/root/bin/ls) 401ca8 strrchr@plt+0x0 (/root/bin/ls)
401a38 _init+0x18 (/root/bin/ls) 401cb3 strrchr@plt+0xb (/root/bin/ls)
301ec13840 _dl_runtime_resolve+0x0 (/lib64/ld-2.14.so) 401a3e _init+0x1e (/root/bin/ls)
301ec0d6a0 _dl_fixup+0x0 (/lib64/ld-2.14.so) 301ec13870 _dl_runtime_resolve+0x30 (/lib64/ld-2.14.so)
[snip]
TODO:
- add source code path field, line number field ...etc.
- add record/report script to use easily and, show human-friendly output.
- filtering kernel functions using scripts
BTW, I couldn't run a script generated by 'perf script -g {pyton|perl}'
with branch events. How do I make scripts analyzing branch events?
# perf record -e branches:u -c 1 -d ls
# perf script -g python
# perf script -s perf-script.py
in trace_begin
Fatal: no event_list!
# perf script -g perl
# perf script -s perf-script.pl
Fatal: no event_list!
Thanks,
---
Akihiro Nagai (4):
perf script: add option resolving vmlinux path
perf script: add the option to show the offset of symbols
perf script: print DSOs and symbols for BTS branch_from addr
perf script: resolve DSOs and symbols for user-space
tools/perf/Documentation/perf-script.txt | 6 ++++
tools/perf/builtin-script.c | 44 +++++++++++++++++++-----------
tools/perf/util/event.c | 4 +++
tools/perf/util/session.c | 44 ++++++++++++++----------------
tools/perf/util/session.h | 3 +-
tools/perf/util/symbol.c | 12 ++++++++
tools/perf/util/symbol.h | 2 +
7 files changed, 74 insertions(+), 41 deletions(-)
--
Akihiro Nagai (akihiro.nagai.hw@hitachi.com)
next reply other threads:[~2011-06-28 7:41 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-28 7:40 Akihiro Nagai [this message]
2011-06-28 7:40 ` [PATCH -tip 1/4] perf script: resolve DSOs and symbols for user-space Akihiro Nagai
2011-06-28 7:40 ` [PATCH -tip 2/4] perf script: print DSOs and symbols for BTS branch_from addr Akihiro Nagai
2011-06-28 7:40 ` [PATCH -tip 3/4] perf script: add the option to show the offset of symbols Akihiro Nagai
2011-06-28 14:52 ` David Ahern
2011-06-28 14:55 ` David Ahern
2011-06-30 4:44 ` Akihiro Nagai
2011-06-30 15:42 ` David Ahern
2011-06-28 7:40 ` [PATCH -tip 4/4] perf script: add option resolving vmlinux path Akihiro Nagai
2011-06-28 15:21 ` [PATCH -tip 0/4] perf script: add BTS analysis features David Ahern
2011-06-30 5:18 ` Akihiro Nagai
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=20110628074019.4269.32109.stgit@linux3 \
--to=akihiro.nagai.hw@hitachi.com \
--cc=acme@infradead.org \
--cc=dsahern@gmail.com \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=masami.hiramatsu.pt@hitachi.com \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
--cc=pp-manager@sdl.hitachi.co.jp \
/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