lkml.org 
[lkml]   [2010]   [Oct]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] tracing: Cleanup the convoluted softirq tracepoints
From
Date
On Tue, 2010-10-19 at 15:49 -0700, H. Peter Anvin wrote:
> On 10/19/2010 03:41 PM, Mathieu Desnoyers wrote:
> >>
> >> OK, first of all, there are some serious WTFs here:
> >>
> >> # define JUMP_LABEL_INITIAL_NOP ".byte 0xe9 \n\t .long 0\n\t"
> >>
> >> A jump instruction is one of the worst possible NOPs. Why are we doing
> >> this?
> >
> > This code is dynamically patched at boot time (and module load time) with a
> > better nop, just like the function tracer does.
> >
>
> That's just ridiculous... start out with something sane and you at least
> have the chance of not having to patch it.

Yep we can fix this. Jason?



> > So if we were executing tracepoints in a maze of jumps, we could argue that
> > instruction throughput is the most important there. However, if we expect the
> > common case to be surrounded by some non-ALU instructions, latency tends to
> > become the most important criterion.
> >
> > But I feel I might be missing something important that distinguish "jcc" from
> > "jmp".
>
> NOP has a latency of 0.5-1.0 cycle/insns, *but has no consumers*.
>
> JMP/Jcc does have a consumer -- the IP -- and actually measuring shows
> that it is much, much worse than NOP and other dummy instructions.

But how does JMP vs Jcc compare?

-- Steve




\
 
 \ /
  Last update: 2010-10-20 01:07    [from the cache]
©2003-2011 Jasper Spaans