[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <cover.1267537676.git.ebmunson@us.ibm.com>
Date: Tue, 2 Mar 2010 14:42:26 +0000
From: Eric B Munson <ebmunson@...ibm.com>
To: a.p.zijlstra@...llo.nl
Cc: paulus@...ba.org, mingo@...e.hu, linux-kernel@...r.kernel.org,
Eric B Munson <ebmunson@...ibm.com>
Subject: [PATCH 0/5] [RFC] Add multiple event support to perf report
Currently perf report is unable to handle multiple events even though
perf record is capable of capturing such a stream. For instance if we run
'perf record -e dtlb-misses -e cache-misses sleep 5'
today and then ask report to show the results we get:
# Samples: 18866
#
# Overhead Command Shared Object Symbol
# ........ ....... ................. ......
#
47.52% sleep [kernel.kallsyms] [k] page_fault
32.93% sleep [kernel.kallsyms] [k] locks_remove_posix
8.52% sleep [kernel.kallsyms] [k] acl_permission_check
3.46% sleep [kernel.kallsyms] [k] __wake_up_bit
3.31% sleep [kernel.kallsyms] [k] vfs_read
3.23% sleep [kernel.kallsyms] [k] kmem_cache_alloc
0.56% sleep [kernel.kallsyms] [k] get_page_from_freelist
0.15% sleep [kernel.kallsyms] [k] pipe_read
0.13% sleep [kernel.kallsyms] [k] pipe_lock_nested
0.13% sleep [kernel.kallsyms] [k] mm_alloc
0.06% sleep [kernel.kallsyms] [k] mm_init
#
# (For a higher level overview, try: perf report --sort comm,dso)
#
Worse than only reporting on one of the events, perf report has
summed the two events. i.e. There is no distinguishing between
dtlb-misses and cache-misses.
This set of patches addresses this problem and now when perf report
is run with the same event stream that produced the above report, the
output is this:
# Samples: 8620 cache-misses
#
# Overhead Command Shared Object Symbol
# ........ ....... ................. ......
#
72.06% sleep [kernel.kallsyms] [k] locks_remove_posix
18.64% sleep [kernel.kallsyms] [k] acl_permission_check
7.56% sleep [kernel.kallsyms] [k] __wake_up_bit
1.22% sleep [kernel.kallsyms] [k] get_page_from_freelist
0.34% sleep [kernel.kallsyms] [k] pipe_read
0.13% sleep [kernel.kallsyms] [k] mm_init
0.02% sleep [kernel.kallsyms] [k] pipe_lock_nested
0.01% sleep [kernel.kallsyms] [k] mm_alloc
0.01% sleep [kernel.kallsyms] [k] kmem_cache_alloc
# Samples: 10246 dTLB-load-misses
#
# Overhead Command Shared Object Symbol
# ........ ....... ................. ......
#
87.51% sleep [kernel.kallsyms] [k] page_fault
6.10% sleep [kernel.kallsyms] [k] vfs_read
5.94% sleep [kernel.kallsyms] [k] kmem_cache_alloc
0.22% sleep [kernel.kallsyms] [k] mm_alloc
0.22% sleep [kernel.kallsyms] [k] pipe_lock_nested
#
# (For a higher level overview, try: perf report --sort comm,dso)
#
Eric B Munson (5):
Add ID and STREAM_ID to recorded event data
Change add_hist_entry to take the tree root instead of session
Add storage for seperating event types in report
Change perf_session post processing functions to take hist tree
Add multiple event support to perf report
tools/perf/builtin-annotate.c | 6 +-
tools/perf/builtin-diff.c | 12 +++--
tools/perf/builtin-record.c | 3 +-
tools/perf/builtin-report.c | 104 ++++++++++++++++++++++++++++++++++++-----
tools/perf/util/event.h | 9 ++++
tools/perf/util/hist.c | 45 +++++++++---------
tools/perf/util/hist.h | 12 +++--
tools/perf/util/session.c | 1 +
tools/perf/util/session.h | 1 +
9 files changed, 145 insertions(+), 48 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists