mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 20:22:09 +00:00
perf annotate browser: Add visual cues on jump lines
Using up/down arrows just before the instruction, replacing the actual chars with approximations to avoid mail encoding snafus: avtab_search_node 0.00 | push %rbp 0.00 | mov %rsp,%rbp 0.00 | callq mcount 0.00 | movzwl 0x6(%rsi),%edx 0.00 | and $0x7fff,%dx 0.00 | test %rdi,%rdi 0.00 | v jne 20 0.00 | 17: xor %eax,%eax 0.00 | 19: leaveq 0.00 | retq 0.00 | nopl 0x0(%rax,%rax,1) 0.00 | 20: mov (%rdi),%rax 0.00 | test %rax,%rax 0.00 | ^ je 17 0.00 | movzwl (%rsi),%ecx 0.00 | movzwl 0x2(%rsi),%r9d 0.00 | movzwl 0x4(%rsi),%r8d 0.00 | movzwl %cx,%esi 0.00 | movzwl %r9w,%r10d 0.00 | shl $0x9,%esi 0.00 | lea (%rsi,%r10,4),%esi 0.00 | lea (%r8,%rsi,1),%esi 0.00 | and 0x10(%rdi),%si 0.00 | movzwl %si,%esi 0.00 | mov (%rax,%rsi,8),%rax 0.00 | test %rax,%rax 0.00 | ^ je 19 0.00 | nopw 0x0(%rax,%rax,1) 0.00 | 60: cmp %cx,(%rax) 0.00 | v jne 7e 0.00 | cmp %r9w,0x2(%rax) 0.00 | v jne 7e 0.00 | cmp %r8w,0x4(%rax) 0.00 | v jne 79 0.00 | test %dx,0x6(%rax) 0.00 | ^ jne 19 0.00 | 79: cmp %r8w,0x4(%rax) 93.04 | 7e:^ ja 17 2.53 | mov 0x10(%rax),%rax 4.43 | test %rax,%rax 0.00 | ^ jne 60 0.00 | leaveq 0.00 | retq Next low hanging fruit is to use left arrow for retqs, then work on clearling marking loops. Requested-by: Linus Torvalds <torvalds@linux-foundation.org> Cc: David Ahern <dsahern@gmail.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Mike Galbraith <efault@gmx.de> Cc: Namhyung Kim <namhyung@gmail.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/n/tip-hkx848wdbs6n7bcp3ymr9yus@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
d223288556
commit
51a0d455b5
@ -113,9 +113,20 @@ static void annotate_browser__write(struct ui_browser *self, void *entry, int ro
|
||||
if (change_color)
|
||||
ui_browser__set_color(self, color);
|
||||
if (dl->ins && dl->ins->ops->scnprintf) {
|
||||
if (ins__is_jump(dl->ins)) {
|
||||
bool fwd = dl->ops.target > (u64)dl->offset;
|
||||
|
||||
SLsmg_set_char_set(1);
|
||||
SLsmg_write_char(fwd ? SLSMG_DARROW_CHAR :
|
||||
SLSMG_UARROW_CHAR);
|
||||
SLsmg_set_char_set(0);
|
||||
SLsmg_write_char(' ');
|
||||
} else {
|
||||
slsmg_write_nstring(" ", 2);
|
||||
}
|
||||
|
||||
dl->ins->ops->scnprintf(dl->ins, bf, sizeof(bf), &dl->ops,
|
||||
!ab->use_offset);
|
||||
slsmg_write_nstring(" ", 2);
|
||||
printed += 2;
|
||||
} else
|
||||
scnprintf(bf, sizeof(bf), " %-6.6s %s", dl->name, dl->ops.raw);
|
||||
|
Loading…
Reference in New Issue
Block a user