Currently perf has a feature to account cycles for LBRs

For example, on skylake,

perf record -b ...
perf report or
perf annotate

And then browsing the annotate browser gives average cycle counts
for program blocks.

For some analysis it would be useful if we could know not only
the average cycles but also the max and min cycles.

Now, for example, when press 'c', the annotate view is:

Percent│ IPC     Cycle(max/min)
       │
       │
       │                             Disassembly of section .text:
       │
       │                             000000000003aab0 <random@@GLIBC_2.2.5>:
  8.22 │3.92                           sub    $0x18,%rsp
       │3.92                           mov    $0x1,%esi
       │3.92                           xor    %eax,%eax
       │3.92                           cmpl   $0x0,argp_program_version_hook@@G
       │3.92             1(2/1)      ↓ je     20
       │                               lock   cmpxchg %esi,__abort_msg@@GLIBC_P
       │                             ↓ jne    29
       │                             ↓ jmp    43
       │1.10                     20:   cmpxchg %esi,__abort_msg@@GLIBC_PRIVATE+
  8.93 │1.10             1(5/1)      ↓ je     43

When press 'c' again, the annotate view is switched back:

Percent│ IPC Cycle
       │
       │
       │                Disassembly of section .text:
       │
       │                000000000003aab0 <random@@GLIBC_2.2.5>:
  8.22 │3.92              sub    $0x18,%rsp
       │3.92              mov    $0x1,%esi
       │3.92              xor    %eax,%eax
       │3.92              cmpl   $0x0,argp_program_version_hook@@GLIBC_2.2.5+0x
       │3.92     1      ↓ je     20
       │                  lock   cmpxchg %esi,__abort_msg@@GLIBC_PRIVATE+0x8a0
       │                ↓ jne    29
       │                ↓ jmp    43
       │1.10        20:   cmpxchg %esi,__abort_msg@@GLIBC_PRIVATE+0x8a0
  8.93 │1.10     1      ↓ je     43

Jin Yao (2):
  perf annotate: Record the max/min cycles
  perf annotate: Create hotkey 'c' to show max/min cycles

 tools/perf/ui/browsers/annotate.c |  8 ++++++
 tools/perf/util/annotate.c        | 51 +++++++++++++++++++++++++++++++++------
 tools/perf/util/annotate.h        | 11 ++++++++-
 3 files changed, 62 insertions(+), 8 deletions(-)

-- 
2.7.4

Reply via email to