From: Jiri Olsa <jolsa@redhat.com>
To: Andi Kleen <andi@firstfloor.org>
Cc: acme@infradead.org, namhyung@kernel.org, mingo@kernel.org,
dsahern@gmail.com, fweisbec@gmail.com, adrian.hunter@intel.com,
linux-kernel@vger.kernel.org
Subject: Re: Implement lbr-as-callgraph v3
Date: Wed, 15 Jan 2014 14:59:26 +0100 [thread overview]
Message-ID: <20140115135926.GD8350@krava.redhat.com> (raw)
In-Reply-To: <1389661461-18996-1-git-send-email-andi@firstfloor.org>
On Mon, Jan 13, 2014 at 05:04:15PM -0800, Andi Kleen wrote:
> This patchkit implements lbr-as-callgraphs in per freport,
> as an alternative way to present LBR information.
>
> Current perf report does a histogram over the branch edges,
> which is useful to look at basic blocks, but doesn't tell
> you anything about the larger control flow behaviour.
>
> This patchkit adds a new option --branch-history that
> adds the branch paths to the callgraph history instead.
>
> This allows to reason about individual branch paths leading
> to specific samples.
>
> Updates to v1:
> - rebased on perf/core
> - fix various issues
> - rename the option to --branch-history
> - various fixes to display the information more concise
>
> Updates to v3:
> - White space changes
> - Consolidate some patches
> - Update some descriptions
>
> Example output:
>
> % perf record -b -g ./tsrc/tcall
> [ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 0.044 MB perf.data (~1923 samples) ]
> % perf report --branch-history
> ...
> 54.91% tcall.c:6 [.] f2 tcall
> |
> |--65.53%-- f2 tcall.c:5
> | |
> | |--70.83%-- f1 tcall.c:11
> | | f1 tcall.c:10
> | | main tcall.c:18
> | | main tcall.c:18
> | | main tcall.c:17
> | | main tcall.c:17
> | | f1 tcall.c:13
> | | f1 tcall.c:13
> | | f2 tcall.c:7
> | | f2 tcall.c:5
> | | f1 tcall.c:12
> | | f1 tcall.c:12
> | | f2 tcall.c:7
> | | f2 tcall.c:5
> | | f1 tcall.c:11
>
>
the tui output needs some cleanup:
+ 26.38% :0 [.] _IO_file_xsputn@@GLIBC_2.2.5 libc-2.17.so ◆
+ 20.43% :0 [.] __strlen_sse2 libc-2.17.so ▒
+ 15.94% yes.c:83 [.] main yes ▒
+ 12.16% :0 [.] fputs_unlocked libc-2.17.so ▒
+ 10.27% stdio.h:107 [.] main yes ▒
+ 10.09% :0 [.] __GI___mempcpy libc-2.17.so ▒
+ 2.63% yes.c:84 [.] main yes ▒
+ 1.71% yes[4012f0] [.] fputs_unlocked@plt yes ▒
+ 0.25% yes.c:85 [.] main yes ▒
+ 0.03% [kernel.kallsyms][ffffffff81757eb0] [k] system_call [kernel.kallsyms] ▒
+ 0.02% :0 [.] _IO_file_write@@GLIBC_2.2.5 libc-2.17.so ▒
+ 0.02% :0 [.] _IO_do_write@@GLIBC_2.2.5 libc-2.17.so ▒
+ 0.02% [kernel.kallsyms][ffffffff81758b40] [k] apic_timer_interrupt [kernel.kallsyms] ▒
+ 0.02% :0 [.] _IO_default_xsputn libc-2.17.so ▒
+ 0.01% :0 [.] _IO_file_overflow@@GLIBC_2.2.5 libc-2.17.so ▒
+ 0.01% :0 [.] __GI___libc_write libc-2.17.so ▒
+ 0.00% [kernel.kallsyms][ffffffff8174f020] [k] page_fault [kernel.kallsyms] ▒
+ 0.00% :0 [.] getenv libc-2.17.so ▒
+ 0.00% :0 [.] _nl_load_locale_from_archive libc-2.17.so ▒
+ 0.00% ld-2.17.so[3407c0af52] [.] _dl_setup_hash ld-2.17.so ▒
+ 0.00% ld-2.17.so[3407c01420] [.] _start ld-2.17.so
when we cannot get source and line number we could output address not ':0':
- 2.63% yes.c:84 [.] main yes ▒
- main stdio.h:107 ▒
- main yes.c:84 ▒
- main yes.c:84 ▒
- fputs_unlocked :0 ▒
- fputs_unlocked :0 ▒
- _IO_file_xsputn@@GLIBC_2.2.5 :0 ▒
- 99.78% _IO_file_xsputn@@GLIBC_2.2.5 :0 ▒
__GI___mempcpy :0 ▒
__GI___mempcpy :0 ▒
__GI___mempcpy :0 ▒
__GI___mempcpy :0
at some samples I could not get see source/address info, just:
0.03% [kernel.kallsyms][ffffffff810a7b4f] [k] __srcu_read_lock [kernel.kallsyms]
|
--- __srcu_read_lock
fsnotify
fsnotify
fsnotify
fsnotify
fsnotify
fsnotify
fsnotify
fsnotify
going to check the patches now ;-)
jirka
prev parent reply other threads:[~2014-01-15 14:00 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-14 1:04 Implement lbr-as-callgraph v3 Andi Kleen
2014-01-14 1:04 ` [PATCH 1/6] perf, tools: fix BFD detection on opensuse Andi Kleen
2014-01-14 1:04 ` [PATCH 2/6] perf, tools: Support handling complete branch stacks as histograms v3 Andi Kleen
2014-01-15 14:48 ` Jiri Olsa
2014-01-15 15:27 ` Andi Kleen
2014-01-15 15:45 ` Jiri Olsa
2014-01-15 15:00 ` Jiri Olsa
2014-01-14 1:04 ` [PATCH 3/6] perf, tools: Add --branch-history option to report v2 Andi Kleen
2014-01-15 14:44 ` Jiri Olsa
2014-01-15 15:23 ` Andi Kleen
2014-01-15 15:42 ` Jiri Olsa
2014-01-14 1:04 ` [PATCH 4/6] perf, tools: Enable printing the srcline in the history Andi Kleen
2014-01-15 15:12 ` Jiri Olsa
2014-01-14 1:04 ` [PATCH 5/6] perf, tools: Only print base source file for srcline Andi Kleen
2014-01-14 1:04 ` [PATCH 6/6] perf, tools: Support source line numbers in annotate Andi Kleen
2014-01-15 13:59 ` Jiri Olsa [this message]
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=20140115135926.GD8350@krava.redhat.com \
--to=jolsa@redhat.com \
--cc=acme@infradead.org \
--cc=adrian.hunter@intel.com \
--cc=andi@firstfloor.org \
--cc=dsahern@gmail.com \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
/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).