All of lore.kernel.org
 help / color / mirror / Atom feed
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)

             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 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.