linux/tools/perf
Jin Yao 7aece5143f perf annotate: Fix broken arrow at row 0 connecting jmp instruction to its target
commit 80f62589fa upstream.

When the jump instruction is displayed at the row 0 in annotate view,
the arrow is broken. An example:

 16.86 │   ┌──je     82
  0.01 │      movsd  (%rsp),%xmm0
       │      movsd  0x8(%rsp),%xmm4
       │      movsd  0x8(%rsp),%xmm1
       │      movsd  (%rsp),%xmm3
       │      divsd  %xmm4,%xmm0
       │      divsd  %xmm3,%xmm1
       │      movsd  (%rsp),%xmm2
       │      addsd  %xmm1,%xmm0
       │      addsd  %xmm2,%xmm0
       │      movsd  %xmm0,(%rsp)
       │82:   sub    $0x1,%ebx
 83.03 │    ↑ jne    38
       │      add    $0x10,%rsp
       │      xor    %eax,%eax
       │      pop    %rbx
       │    ← retq

The patch increments the row number before checking with 0.

Signed-off-by: Yao Jin <yao.jin@linux.intel.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Fixes: 944e1abed9 ("perf ui browser: Add method to draw up/down arrow line")
Link: http://lkml.kernel.org/r/1496901704-30275-1-git-send-email-yao.jin@linux.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2017-11-11 13:32:53 +00:00
..
arch perf tools: Add libdw DWARF post unwind support for ARM 2014-05-16 11:39:29 +02:00
bench Merge branch 'perf-core-for-mingo' into perf/urgent 2014-04-14 16:45:39 +02:00
config perf tools: Emit more precise message for missing glibc static library 2014-06-09 12:14:08 -03:00
Documentation perf script python: Remove dups in documentation examples 2017-09-15 18:30:06 +01:00
python perf python: Remove duplicate TID bit from mask 2013-08-07 17:35:25 -03:00
scripts perf tools: Finish the removal of 'self' arguments 2013-11-05 15:32:36 -03:00
tests perf tests: Avoid possible truncation with dirent->d_name + snprintf 2017-06-05 21:17:06 +01:00
ui perf annotate: Fix broken arrow at row 0 connecting jmp instruction to its target 2017-11-11 13:32:53 +00:00
util perf script: Fix outdated comment for perf-trace-python 2017-09-15 18:30:05 +01:00
.gitignore perf tools: Ignore 'perf timechart' output file 2013-10-11 12:17:37 -03:00
builtin-annotate.c perf hists: Check if accumulated when adding a hist entry 2014-06-01 14:34:56 +02:00
builtin-bench.c perf bench: Fix segfault at the end of an 'all' execution 2014-04-14 12:55:53 +02:00
builtin-buildid-cache.c perf buildid-cache: Check relocation when checking for existing kcore 2014-01-31 17:21:54 -03:00
builtin-buildid-list.c perf session: Separating data file properties from session 2013-10-21 17:33:25 -03:00
builtin-diff.c perf hists: Check if accumulated when adding a hist entry 2014-06-01 14:34:56 +02:00
builtin-evlist.c perf evlist: Introduce evlist__for_each() & friends 2014-01-13 10:06:25 -03:00
builtin-help.c perf help: Fix --help for builtins 2012-10-22 12:35:49 -02:00
builtin-inject.c perf inject: Don't proceed if perf_session__process_event() fails 2017-08-26 02:14:30 +01:00
builtin-kmem.c perf tools: Use tid for finding thread 2014-05-12 11:09:50 +02:00
builtin-kvm.c perf kvm: Fix 'Min time' counting in report command 2014-04-20 00:14:08 +02:00
builtin-list.c perf list: Add usage 2013-11-05 14:26:41 -03:00
builtin-lock.c perf lock: Introduce --list-cmds for use by scripts 2014-04-16 17:16:04 +02:00
builtin-mem.c perf mem: Introduce --list-cmds for use by scripts 2014-04-16 17:16:04 +02:00
builtin-probe.c perf probe: Show error code and description in verbose mode 2014-06-09 14:34:09 -03:00
builtin-record.c perf/tool: Add conditional branch filter 'cond' to perf record 2014-06-05 12:30:19 +02:00
builtin-report.c perf tools: Add callback function to hist_entry_iter 2014-06-01 14:35:05 +02:00
builtin-sched.c perf tools: Introduce hists__inc_nr_samples() 2014-06-01 14:34:55 +02:00
builtin-script.c perf evlist: Introduce evlist__for_each() & friends 2014-01-13 10:06:25 -03:00
builtin-stat.c perf stat: Get correct cpu id for print_aggr 2015-09-30 13:20:46 +01:00
builtin-timechart.c perf symbols: Record the reason for filtering an address_location 2014-03-18 18:16:57 -03:00
builtin-top.c perf top: Add top.children config option 2014-06-01 14:35:07 +02:00
builtin-trace.c perf trace: Use the syscall raw_syscalls:sys_enter timestamp 2017-03-16 02:26:16 +00:00
builtin.h perf tools: Add new mem command for memory access profiling 2013-04-01 12:21:44 -03:00
command-list.txt perf tools: Add new mem command for memory access profiling 2013-04-01 12:21:44 -03:00
CREDITS perf_counter tools: Add CREDITS file for Git contributors 2009-06-24 19:54:29 +02:00
design.txt perf tools: Update some code references in design.txt 2014-03-18 18:17:06 -03:00
Makefile perf tools: Add 'build-test' make target 2014-01-16 16:26:26 -03:00
Makefile.perf perf tools: Prettify the tags/TAGS/cscope targets output 2014-06-09 12:21:02 +02:00
MANIFEST tools: Consolidate types.h 2014-05-01 21:22:39 +02:00
perf-archive.sh perf archive: Make 'f' the last parameter for tar 2012-09-17 13:10:42 -03:00
perf-completion.sh perf sched: Introduce --list-cmds for use by scripts 2014-04-16 17:16:05 +02:00
perf-sys.h perf tools: Move sys_perf_event_open function from perf.h 2014-05-05 17:48:51 +02:00
perf.c perf tools: Add support to dynamically get cacheline size 2014-06-09 13:34:48 +02:00
perf.h perf tools: Move ACCESS_ONCE from perf.h header 2014-05-05 17:49:07 +02:00