linux/tools/perf
Kan Liang 6f680c6aa2 perf script: Add 'brstackinsnlen' for branch stacks
When analyzing with 'perf script', it's useful to understand the
captured instruction and the next sequential instruction.

To calculate the address of the next sequential instruction, the length
of the captured instruction is required.

For example, you can’t know the next sequential instruction after an
unconditional branch unless you calculate that based on its length.

For branch stacks, 'perf script' only prints the instruction bytes with
'brstackinsn', but lacks the instruction length.

Add 'brstackinsnlen' to print the instruction length.

  $ perf script -F ip,brstackinsn,brstackinsnlen --xed
     7fa555be8f75
        _start:
        00007fa555be8090    mov %rsp, %rdi              ilen: 3
        00007fa555be8093    callq  0x7fa555be8ea0       ilen: 5 # PRED 102 cycles [102] 0.02 IPC
        _dl_start+38:
        00007fa555be8ec6    movq  %rdx,0x227853(%rip)   ilen: 7
        00007fa555be8ecd    leaq  0x227f94(%rip),%rdx   ilen: 7

Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
Cc: Ahmad Yasin <ahmad.yasin@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
Link: https://lore.kernel.org/r/1647871212-184070-1-git-send-email-kan.liang@linux.intel.com
[ Added the new field to tools/perf/Documentation/perf-script.txt ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2022-03-22 18:00:45 -03:00
..
arch perf parse-events: Move slots only with topdown 2022-03-22 17:52:58 -03:00
bench perf bench: Fix NULL check against wrong variable 2022-03-12 10:49:13 -03:00
dlfilters
Documentation perf script: Add 'brstackinsnlen' for branch stacks 2022-03-22 18:00:45 -03:00
examples/bpf
include
jvmti
pmu-events perf vendor events intel: Update events for TremontX 2022-03-18 11:43:51 -03:00
python
scripts perf scripts python: export-to-postgresql.py: Export all sample flags 2022-02-15 17:15:07 -03:00
tests perf test arm64: Test unwinding using fame-pointer (fp) mode 2022-03-21 18:05:23 -03:00
trace perf beauty: Make the prctl arg regexp more strict to cope with PR_SET_VMA 2022-02-01 13:03:27 -03:00
ui
util Merge remote-tracking branch 'torvalds/master' into perf/core 2022-03-22 17:52:10 -03:00
.gitignore
Build
builtin-annotate.c perf annotate: Remove redundant 'ret' variable 2022-02-16 10:38:55 -03:00
builtin-bench.c
builtin-buildid-cache.c
builtin-buildid-list.c
builtin-c2c.c perf c2c: Replace bitmap_weight() with bitmap_empty() where appropriate 2022-02-15 17:15:31 -03:00
builtin-config.c
builtin-daemon.c
builtin-data.c perf data: Don't mention --to-ctf if it's not supported 2022-02-22 21:23:08 -03:00
builtin-diff.c
builtin-evlist.c
builtin-ftrace.c perf ftrace latency: Add -n/--use-nsec option 2022-03-22 17:43:46 -03:00
builtin-help.c
builtin-inject.c perf namespaces: Add functions to access nsinfo 2022-02-11 14:31:22 -03:00
builtin-kallsyms.c
builtin-kmem.c
builtin-kvm.c perf report: Output data file name in raw trace dump 2022-02-10 16:27:34 -03:00
builtin-list.c
builtin-lock.c perf lock: Carefully combine lock stats for discarded entries 2022-02-10 15:43:56 -03:00
builtin-mem.c
builtin-probe.c perf namespaces: Add functions to access nsinfo 2022-02-11 14:31:22 -03:00
builtin-record.c perf data: Adding error message if perf_data__create_dir() fails 2022-02-22 21:15:56 -03:00
builtin-report.c perf tui: Only support --tui with slang 2022-02-15 17:15:29 -03:00
builtin-sched.c
builtin-script.c perf script: Add 'brstackinsnlen' for branch stacks 2022-03-22 18:00:45 -03:00
builtin-stat.c
builtin-timechart.c
builtin-top.c perf top: Remove redundant 'err' variable 2022-02-16 10:38:03 -03:00
builtin-trace.c Merge remote-tracking branch 'torvalds/master' into perf/core 2022-02-17 18:40:54 -03:00
builtin-version.c
builtin.h
check-headers.sh
command-list.txt
CREDITS
design.txt
Makefile
Makefile.config
Makefile.perf perf tools: Fix dependency for version file creation 2022-03-22 10:18:29 -03:00
MANIFEST
perf-archive.sh
perf-completion.sh
perf-iostat.sh
perf-read-vdso.c
perf-sys.h
perf-with-kcore.sh
perf.c
perf.h