All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/3] perf report/annotate: Support average IPC and IPC coverage for function
@ 2018-11-28 15:14 Jin Yao
  2018-11-28  9:10 ` Ingo Molnar
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Jin Yao @ 2018-11-28 15:14 UTC (permalink / raw)
  To: acme, jolsa, peterz, mingo, alexander.shishkin
  Cc: Linux-kernel, ak, kan.liang, yao.jin, Jin Yao

Add supporting of displaying the average IPC and IPC coverage
percentage per function.

For example,

$ perf record -b ...
$ perf report -s symbol or
  perf report -s symbol --stdio

Overhead  Symbol                           IPC   [IPC Coverage]
  39.60%  [.] __random                     2.30  [ 54.8%]
  18.02%  [.] main                         0.43  [ 54.3%]
  14.21%  [.] compute_flag                 2.29  [100.0%]
  14.16%  [.] rand                         0.36  [100.0%]
   7.06%  [.] __random_r                   2.57  [ 70.5%]
   6.85%  [.] rand@plt                     0.00  [  0.0%]
  ...

$ perf annotate --stdio2

Percent  IPC Cycle (Average IPC: 2.30, IPC Coverage: 54.8%)

                        Disassembly of section .text:

                        000000000003aac0 <random@@GLIBC_2.2.5>:
  8.32  3.28              sub    $0x18,%rsp
        3.28              mov    $0x1,%esi
        3.28              xor    %eax,%eax
        3.28              cmpl   $0x0,argp_program_version_hook@@GLIBC_2.2.5+0x1e0
 11.57  3.28     1      ↓ je     20
                          lock   cmpxchg %esi,__abort_msg@@GLIBC_PRIVATE+0x8a0
                        ↓ jne    29
                        ↓ jmp    43
 11.57  1.10        20:   cmpxchg %esi,__abort_msg@@GLIBC_PRIVATE+0x8a0
 ...

v3:
---
    Remove the sortkey "ipc" from command-line. The columns "IPC"
    and "[IPC Coverage]" are automatically enabled when "symbol"
    is specified.

    Patch "perf report: Display average IPC and IPC coverage per symbol"
    is impacted.

v2:
---
  1. Merge in Jiri's patch to support stdio mode

  2. Add a new patch "perf annotate: Create a annotate2 flag
     in struct symbol" which records if the symbol has been
     annotated yet.

  3. Minor update such as adding { } for multiline code in 'if'
     condition.

Jin Yao (3):
  perf annotate: Compute average IPC and IPC coverage per symbol
  perf annotate: Create a annotate2 flag in struct symbol
  perf report: Display average IPC and IPC coverage per symbol

 tools/perf/builtin-report.c | 26 ++++++++++++++++---
 tools/perf/util/annotate.c  | 42 ++++++++++++++++++++++++++++---
 tools/perf/util/annotate.h  |  5 ++++
 tools/perf/util/hist.h      |  1 +
 tools/perf/util/sort.c      | 61 +++++++++++++++++++++++++++++++++++++++++++++
 tools/perf/util/sort.h      |  2 ++
 tools/perf/util/symbol.h    |  1 +
 7 files changed, 132 insertions(+), 6 deletions(-)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2018-11-30  0:29 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-28 15:14 [PATCH v3 0/3] perf report/annotate: Support average IPC and IPC coverage for function Jin Yao
2018-11-28  9:10 ` Ingo Molnar
2018-11-28 12:39   ` Jin, Yao
2018-11-28 10:17 ` Jiri Olsa
2018-11-28 10:18   ` Jiri Olsa
2018-11-29  6:24     ` Jin, Yao
2018-11-29 10:13       ` Jiri Olsa
2018-11-30  0:28         ` Jin, Yao
2018-11-28 15:14 ` [PATCH v3 1/3] perf annotate: Compute average IPC and IPC coverage per symbol Jin Yao
2018-11-28 15:14 ` [PATCH v3 2/3] perf annotate: Create a annotate2 flag in struct symbol Jin Yao
2018-11-28 15:14 ` [PATCH v3 3/3] perf report: Display average IPC and IPC coverage per symbol Jin Yao

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.