lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ