Jin Yao
ace4f8faea
perf annotate: Compute average IPC and IPC coverage per symbol
Add support to 'perf report' annotate view or 'perf annotate --stdio2'
to aggregate the IPC derived from timed LBRs per symbol. We compute the
average IPC and the IPC coverage percentage.
For example:
$ 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
0.00 1.10 1 ↓ je 43
29: lea __abort_msg@@GLIBC_PRIVATE+0x8a0,%rdi
sub $0x80,%rsp
→ callq __lll_lock_wait_private
add $0x80,%rsp
0.00 3.00 43: lea __ctype_b@GLIBC_2.2.5+0x38,%rdi
3.00 lea 0xc(%rsp),%rsi
8.49 3.00 1 → callq __random_r
7.91 1.94 cmpl $0x0,argp_program_version_hook@@GLIBC_2.2.5+0x1e0
0.00 1.94 1 ↓ je 68
lock decl __abort_msg@@GLIBC_PRIVATE+0x8a0
↓ jne 70
↓ jmp 8a
0.00 2.00 68: decl __abort_msg@@GLIBC_PRIVATE+0x8a0
21.56 2.00 1 ↓ je 8a
70: lea __abort_msg@@GLIBC_PRIVATE+0x8a0,%rdi
sub $0x80,%rsp
→ callq __lll_unlock_wake_private
add $0x80,%rsp
21.56 2.90 8a: movslq 0xc(%rsp),%rax
2.90 add $0x18,%rsp
9.03 2.90 1 ← retq
It shows for this symbol the average IPC is 2.30 and the IPC coverage is
54.8%.
Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
Reviewed-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1543586097-27632-2-git-send-email-yao.jin@linux.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2018-12-17 14:55:32 -03:00
..
2018-12-17 14:54:51 -03:00
2018-11-21 22:39:55 -03:00
2018-12-17 14:55:11 -03:00
2018-11-21 12:00:31 -03:00
2018-11-21 12:00:32 -03:00
2018-11-21 22:39:58 -03:00
2018-11-21 22:39:58 -03:00
2018-02-19 12:28:08 -03:00
2018-11-05 14:53:00 -03:00
2018-12-17 14:54:32 -03:00
2018-12-17 14:55:14 -03:00
2018-08-08 15:55:52 -03:00
2018-12-17 14:55:32 -03:00
2018-02-05 13:58:02 -03:00
2018-01-23 09:51:38 -03:00
2018-09-19 10:25:10 -03:00
2018-11-21 22:39:55 -03:00
2018-05-15 10:32:16 -03:00
2017-11-07 10:30:18 +01:00
2018-07-31 10:53:20 -03:00
2017-11-07 10:30:18 +01:00
2017-11-02 11:10:55 +01:00
2018-07-24 14:37:33 -03:00
2017-11-07 10:30:18 +01:00
2018-02-19 09:49:12 -03:00
2018-04-12 10:33:31 -03:00
2018-09-19 15:06:59 -03:00
2018-04-30 12:20:54 -03:00
2018-08-13 15:22:18 -03:00
2018-06-04 10:28:52 -03:00
2017-11-07 10:30:18 +01:00
2017-11-07 10:30:18 +01:00
2018-04-18 15:35:48 -03:00
2018-06-04 10:28:50 -03:00
2018-12-17 14:55:11 -03:00
2018-10-23 13:32:18 +01:00
2018-06-05 10:09:54 -03:00
2018-12-17 14:54:18 -03:00
2018-11-05 14:37:09 -03:00
2018-04-26 13:47:09 -03:00
2018-12-17 14:54:40 -03:00
2018-11-21 12:00:31 -03:00
2018-04-12 10:33:34 -03:00
2017-11-02 11:10:55 +01:00
2018-10-30 11:46:22 -03:00
2018-09-19 14:53:36 -03:00
2014-03-18 18:17:06 -03:00
2018-08-20 08:54:58 -03:00
2018-12-17 14:54:54 -03:00
2018-12-17 14:55:14 -03:00
2017-09-25 10:39:43 -03:00
2017-11-02 11:10:55 +01:00
2017-12-27 12:16:00 -03:00
2017-11-02 11:10:55 +01:00
2018-02-23 14:29:59 +00:00
2015-08-06 16:48:27 -03:00
2018-06-04 10:28:50 -03:00
2018-12-17 14:55:08 -03:00