[PATCH 3.10 116/139] perf annotate: Fix broken arrow at row 0 connecting jmp instruction to its target

From: Willy Tarreau
Date: Wed Nov 01 2017 - 17:29:59 EST


From: Jin Yao <yao.jin@xxxxxxxxxxxxxxx>

commit 80f62589fa52f530cffc50e78c0b5a2ae572d61e 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@xxxxxxxxxxxxxxx>
Tested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Fixes: 944e1abed9e1 ("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@xxxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Willy Tarreau <w@xxxxxx>
---
tools/perf/ui/browser.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/ui/browser.c b/tools/perf/ui/browser.c
index bbc782e..9118fb8 100644
--- a/tools/perf/ui/browser.c
+++ b/tools/perf/ui/browser.c
@@ -672,7 +672,7 @@ static void __ui_browser__line_arrow_down(struct ui_browser *browser,
ui_browser__gotorc(browser, row, column + 1);
SLsmg_draw_hline(2);

- if (row++ == 0)
+ if (++row == 0)
goto out;
} else
row = 0;
--
2.8.0.rc2.1.gbe9624a