Re: [tip:perf/core] perf ui annotate browser: Allow toggling addroffset view

From: Linus Torvalds
Date: Fri Apr 13 2012 - 14:26:09 EST


On Fri, Apr 13, 2012 at 11:07 AM, tip-bot for Arnaldo Carvalho de Melo
<acme@xxxxxxxxxx> wrote:
>
> The offset view will be the default as soon as operations that deal with
> offsets in a function are handled accodringly, i.e. in offset view the
> above will become:
>
>     2f:       jne    __list_del_entry+0x84
> <SNIP>
>     84:       mov    %rdi,%rcx

Oh, please please please make this happen.

Also, if at all possible, please mark offsets that are referenced by a
branch some way. I do think that the "size of instruction" can be a
very valid piece of information when looking at instruction-level
profiles, but quite frankly, I'm also 100% sure that the fact that an
instruction is a branch target is *more* important.

Now, fancy arrows etc might be too hard to do (especially without
cluttering things up too much), but marking just the targets would
already be lovely. IOW, turn this mess:


: ffffffff810d7e80 <kmem_cache_free>:
1.91 : ffffffff810d7e80: push %rbp
0.05 : ffffffff810d7e81: mov %rsp,%rbp
2.02 : ffffffff810d7e84: push %r12
0.00 : ffffffff810d7e86: mov %rdi,%r12
0.55 : ffffffff810d7e89: push %rbx
0.00 : ffffffff810d7e8a: mov %rsi,%rdi
1.20 : ffffffff810d7e8d: mov %rsi,%rbx
1.64 : ffffffff810d7e90: callq ffffffff8102a730 <__phys_addr>
0.05 : ffffffff810d7e95: movabs $0xffffea0000000000,%rdi
0.22 : ffffffff810d7e9f: shr $0xc,%rax
0.11 : ffffffff810d7ea3: shl $0x6,%rax
1.64 : ffffffff810d7ea7: lea (%rax,%rdi,1),%rdi
42.80 : ffffffff810d7eab: mov (%rdi),%rax
2.02 : ffffffff810d7eae: test $0x80,%ah
0.00 : ffffffff810d7eb1: jne ffffffff810d7ef6
<kmem_cache_free+0x76>
0.22 : ffffffff810d7eb3: mov 0x8(%rbp),%r9
7.14 : ffffffff810d7eb7: mov (%r12),%rax
0.65 : ffffffff810d7ebb: add %gs:0xcb88,%rax
4.58 : ffffffff810d7ec4: mov 0x8(%rax),%rdx

(which has tons of unnecessary white-space too - shades of G+) into

<kmem_cache_free>:
1.91 : push %rbp
0.05 : mov %rsp,%rbp
2.02 : push %r12
0.00 : mov %rdi,%r12
0.55 : push %rbx
0.00 : mov %rsi,%rdi
1.20 : mov %rsi,%rbx
1.64 : callq ffffffff8102a730 <__phys_addr>
0.05 : movabs $0xffffea0000000000,%rdi
0.22 : shr $0xc,%rax
0.11 : shl $0x6,%rax
1.64 : lea (%rax,%rdi,1),%rdi
42.80 : mov (%rdi),%rax
2.02 : test $0x80,%ah
0.00 : jne kmem_cache_free+0x76
0.22 : 0x33: mov 0x8(%rbp),%r9
7.14 : 0x37: mov (%r12),%rax
0.65 : add %gs:0xcb88,%rax
4.58 : mov 0x8(%rax),%rdx
....

or something. I think the "callq ffffffff8102a730 <__phys_addr>"
could also be prettified with *zero* downside.

Sure, leave some magic keycombination to get the "full information", but ..

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/