• Arnaldo Carvalho de Melo's avatar
    perf annotate browser: Allow showing offsets in more than just jump targets · 51f39603
    Arnaldo Carvalho de Melo authored
    Jesper wanted to see offsets at callq sites when doing some performance
    investigation related to retpolines, so save him some time by providing
    a 'O' hotkey to allow showing offsets from function start at call
    instructions or in all instructions, just go on pressing 'O' till the
    offsets you need appear.
    
    Example:
    
    Starts with:
    
    Samples: 64  of event 'cycles:ppp', 100000 Hz, Event count (approx.): 318963
    ixgbe_read_reg  /proc/kcore
    Percent│    ↑ je     2a
           │   ┌──cmp    $0xffffffff,%r13d
           │   ├──je     d0
           │   │  mov    $0x53e3,%edi
           │   │→ callq  __const_udelay
           │   │  sub    $0x1,%r15d
           │   │↑ jne    83
           │   │  mov    0x8(%rbp),%rax
           │   │  testb  $0x20,0x1799(%rax)
           │   │↑ je     2a
           │   │  mov    0x200(%rax),%rdi
           │   │  mov    %r13d,%edx
           │   │  mov    $0xffffffffc02595d8,%rsi
           │   │→ callq  netdev_warn
           │   │↑ jmpq   2a
           │d0:└─→mov    0x8(%rbp),%rsi
           │      mov    %rbp,%rdi
           │      mov    %eax,0x4(%rsp)
           │    → callq  ixgbe_remove_adapter.isra.77
           │      mov    0x4(%rsp),%eax
    Press 'h' for help on key bindings
    ============================================================================
    
    Pess 'O':
    
    Samples: 64  of event 'cycles:ppp', 100000 Hz, Event count (approx.): 318963
    ixgbe_read_reg  /proc/kcore
    Percent│    ↑ je     2a
           │   ┌──cmp    $0xffffffff,%r13d
           │   ├──je     d0
           │   │  mov    $0x53e3,%edi
           │99:│→ callq  __const_udelay
           │   │  sub    $0x1,%r15d
           │   │↑ jne    83
           │   │  mov    0x8(%rbp),%rax
           │   │  testb  $0x20,0x1799(%rax)
           │   │↑ je     2a
           │   │  mov    0x200(%rax),%rdi
           │   │  mov    %r13d,%edx
           │   │  mov    $0xffffffffc02595d8,%rsi
           │c6:│→ callq  netdev_warn
           │   │↑ jmpq   2a
           │d0:└─→mov    0x8(%rbp),%rsi
           │      mov    %rbp,%rdi
           │      mov    %eax,0x4(%rsp)
           │db: → callq  ixgbe_remove_adapter.isra.77
           │      mov    0x4(%rsp),%eax
    Press 'h' for help on key bindings
    ============================================================================
    
    Press 'O' again:
    
    Samples: 64  of event 'cycles:ppp', 100000 Hz, Event count (approx.): 318963
    ixgbe_read_reg  /proc/kcore
    Percent│8c: ↑ je     2a
           │8e:┌──cmp    $0xffffffff,%r13d
           │92:├──je     d0
           │94:│  mov    $0x53e3,%edi
           │99:│→ callq  __const_udelay
           │9e:│  sub    $0x1,%r15d
           │a2:│↑ jne    83
           │a4:│  mov    0x8(%rbp),%rax
           │a8:│  testb  $0x20,0x1799(%rax)
           │af:│↑ je     2a
           │b5:│  mov    0x200(%rax),%rdi
           │bc:│  mov    %r13d,%edx
           │bf:│  mov    $0xffffffffc02595d8,%rsi
           │c6:│→ callq  netdev_warn
           │cb:│↑ jmpq   2a
           │d0:└─→mov    0x8(%rbp),%rsi
           │d4:   mov    %rbp,%rdi
           │d7:   mov    %eax,0x4(%rsp)
           │db: → callq  ixgbe_remove_adapter.isra.77
           │e0:   mov    0x4(%rsp),%eax
    Press 'h' for help on key bindings
    ============================================================================
    
    Press 'O' again and it will show just jump target offsets.
    Suggested-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jin Yao <yao.jin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Martin Liška <mliska@suse.cz>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
    Cc: Thomas Richter <tmricht@linux.vnet.ibm.com>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: https://lkml.kernel.org/n/tip-upp6pfdetwlsx18ec2uf1od4@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    51f39603
annotate.c 23.5 KB