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

From: Arnaldo Carvalho de Melo
Date: Fri Apr 13 2012 - 21:04:26 EST


Em Fri, Apr 13, 2012 at 11:30:52AM -0700, Linus Torvalds escreveu:
> On Fri, Apr 13, 2012 at 11:25 AM, Linus Torvalds
> <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> >
> > <kmem_cache_free>:
> >    1.91 :          push   %rbp
>
> Oh, btw, talking about kmem_cache_free: that one uses altinstructions,
> and so perf report shows the hottest instruction wrong (and I'm not
> talking about "ugly"):

Well, if we use Masami's disassembler we would use the actual code as it
is being used and not the original DSO that was later patched by
altinstructions.

We would have to dump it somehow in the ~/.debug/ cache so that we could
do offsite analysis, etc.

My plan is to move the objdump_line stuff to something that doesn't have
objdump in its name, i.e. something that would be generated by
disassembler sources.

The only now being binutils' objdump, but also Masami's disassembler and
probably elfutils eu-objdump after it implements a disassembler + adds
support for -debuginfo files, something that is needed to support
userspace with source code intermixed.

> 12.38 : ffffffff810d7ee5: lea (%r8),%rsi
> 0.71 : ffffffff810d7ee8: callq ffffffff812d3df0
> <this_cpu_cmpxchg16b_emu>
>
> that "lea" really isn't very expensive. In reality, it's not
> "lea+call", it's a "lock ; cmpxchg16b + setz" instruction. But "perf"
> doesn't know about alternative instructions, and if somebody were to
> try to teach it, that would be lovely.
>
> Happily, x86-64 doesn't have quite as many of them as x86-32 does. But
> they are there, sometimes in interesting functions.

> 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/