lkml.org 
[lkml]   [2010]   [Oct]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] tracing: Cleanup the convoluted softirq tracepoints
On Tue, 19 Oct 2010, Steven Rostedt wrote:
> On Tue, 2010-10-19 at 21:49 +0200, Thomas Gleixner wrote:
> > So that saves _TWO_ bytes of text and replaces:
> >
> > - 1e: 83 3d 00 00 00 00 00 cmpl $0x0,0x0(%rip) # 25 <test+0x25>
> > - 25: 74 4d je 74 <test+0x74>
> > + 1e: e9 00 00 00 00 jmpq 23 <test+0x23>
> > + 23: eb 4d jmp 72 <test+0x72>
> >
> > So it trades a conditional vs. two jumps ? WTF ??
>
> Well, the one jmpq is noped out, and the jmp is non conditional. I've

What are you smoking ?

In case the trace point is enabled the jmpq is there, so it jumps to
23 and jumps from there to 72.

In case the trace point is disabled the jmpq is noped out, so it jumps
to 72 directly.

> always thought a non conditional jmp was faster than a conditional one,

I always thought, that at least some of the stuff which comes from
tracing folks makes some sense.

> since there's no need to go into the branch prediction logic. The CPU
> can simply skip to the code to jump next. Of counse, this pollutes the
> I$.

We might consult Mathieu for further useless blurb on how CPUs work
around broken code.

Thanks,

tglx


\
 
 \ /
  Last update: 2010-10-19 23:11    [from the cache]
©2003-2011 Jasper Spaans