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>,
yrl.pp-manager.tt@hitachi.com
Subject: [PATCH -tip v4 0/5] perf script: add BTS analysis features
Date: Mon, 16 Jan 2012 14:21:46 +0900 [thread overview]
Message-ID: <20120116052146.2485.48349.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 version 4.
The patches add the following functions.
- Unify the expression to "[unknown]"
- Fix BTS record header to resolve DSOs and symbols of user-space
- Resolve DSOs and symbols for BTS's branch_from addresses
- Show the offset of symbols with the 'offs' field specifier.
- Resolve the real path of [kernel.kallsym] using
'--show-kernel-path' option.
Usage:
First, get the BTS log with the following command.
# perf record -e branches:u -c 1 -d <command>
Second, analyze that trace data.
# perf script -f ip,addr,sym,offs,dso [--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,offs --show-kernel-path
[snip]
402c1c main+0x0 (/root/bin/ls) 3430c21399 __libc_start_main+0xe9 (/lib64/libc-2.14.so)
40b390 set_program_name+0x0 (/root/bin/ls) 402c41 main+0x25 (/root/bin/ls)
40b390 set_program_name+0x0 (/root/bin/ls) ffffffff814ac5ed irq_return+0x0 (/lib/modules/3.2.0+/build/vmlinux)
401e20 strrchr@plt+0x0 (/root/bin/ls) 40b39e set_program_name+0xe (/root/bin/ls)
401e26 strrchr@plt+0x6 (/root/bin/ls) 401e20 strrchr@plt+0x0 (/root/bin/ls)
401b80 _init+0x18 (/root/bin/ls) 401e2b strrchr@plt+0xb (/root/bin/ls)
3430813850 _dl_runtime_resolve+0x0 (/lib64/ld-2.14.so) 401b86 _init+0x1e (/root/bin/ls)
[snip]
It shows the tracee application's execution path.
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
Changes in v4:
- add check routine to set correct perf_sample's header.
Changes in v3:
- remove the bug fix patch already fixed.
- unify the "[unknown]" expressions in perf-script.
- fix perf_event_header of BTS events.
- fix patch's descriptions
Changes in v2:
- add a bug fix patch that prints correct IP address
- output the magic word "(unknown)" as symbol name when perf-script can't
resolve symbols.
- output "[unknown]" as DSO name when perf-script can't resolve DSO path.
- change the way to output offset of symbols from '--show-symbol-offset' to
'offs' field.
- clean up codes.
Thanks,
---
Akihiro Nagai (5):
perf script: add option resolving vmlinux path
perf script: add the offset field specifier
perf script: enhance IP and ADDR correlate detection for BTS
perf: set correct value to perf_event_header.misc for BTS
perf-script: unify the expressions indicate "unknown"
arch/x86/kernel/cpu/perf_event_intel_ds.c | 31 +++++++++++++-------
tools/perf/Documentation/perf-script.txt | 5 +++
tools/perf/builtin-script.c | 45 +++++++++++++++++++----------
tools/perf/util/map.c | 15 ++++++++++
tools/perf/util/map.h | 1 +
tools/perf/util/session.c | 38 ++++++++----------------
tools/perf/util/session.h | 2 +
tools/perf/util/symbol.c | 20 +++++++++++++
tools/perf/util/symbol.h | 4 +++
9 files changed, 108 insertions(+), 53 deletions(-)
--
Akihiro Nagai (akihiro.nagai.hw@hitachi.com)
next reply other threads:[~2012-01-16 5:25 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-16 5:21 Akihiro Nagai [this message]
2012-01-16 5:22 ` [PATCH -tip v4 1/5] perf-script: unify the expressions indicate "unknown" Akihiro Nagai
2012-01-17 15:37 ` David Ahern
2012-01-17 15:49 ` Arnaldo Carvalho de Melo
2012-01-18 4:43 ` Akihiro Nagai
2012-01-18 4:47 ` David Ahern
2012-01-19 8:05 ` Akihiro Nagai
2012-01-16 5:22 ` [PATCH -tip v4 2/5] perf: set correct value to perf_event_header.misc for BTS Akihiro Nagai
2012-01-16 5:22 ` [PATCH -tip v4 3/5] perf script: enhance IP and ADDR correlate detection " Akihiro Nagai
2012-01-16 5:22 ` [PATCH -tip v4 4/5] perf script: add the offset field specifier Akihiro Nagai
2012-01-17 16:04 ` David Ahern
2012-01-16 5:22 ` [PATCH -tip v4 5/5] perf script: add option resolving vmlinux path Akihiro Nagai
2012-01-18 11:48 ` [PATCH -tip v4 0/5] perf script: add BTS analysis features Frederic Weisbecker
2012-01-20 7:59 ` Akihiro Nagai
2012-01-20 13:38 ` Frederic Weisbecker
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=20120116052146.2485.48349.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=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;
as well as URLs for NNTP newsgroup(s).