[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1287526484.16971.511.camel@gandalf.stny.rr.com>
Date: Tue, 19 Oct 2010 18:14:44 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
Koki Sanagi <sanagi.koki@...fujitsu.com>,
Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...e.hu>,
Frederic Weisbecker <fweisbec@...il.com>,
nhorman@...driver.com, scott.a.mcmillan@...el.com,
laijs@...fujitsu.com, "H. Peter Anvin" <hpa@...or.com>,
LKML <linux-kernel@...r.kernel.org>, eric.dumazet@...il.com,
kaneshige.kenji@...fujitsu.com, David Miller <davem@...emloft.net>,
izumi.taku@...fujitsu.com, kosaki.motohiro@...fujitsu.com,
Heiko Carstens <heiko.carstens@...ibm.com>,
"Luck, Tony" <tony.luck@...el.com>
Subject: Re: [PATCH] tracing: Cleanup the convoluted softirq tracepoints
On Tue, 2010-10-19 at 23:45 +0200, Thomas Gleixner wrote:
> On Tue, 19 Oct 2010, Steven Rostedt wrote:
> > On Tue, 2010-10-19 at 21:49 +0200, Thomas Gleixner wrote:
> >
> > Because you do the h - softvec in the tracepoint parameter? I got a
> > different result:
>
> I guess some serious whacking is due.
>
> The compiler adds two jumps when the parameter changes due to
> (h -softvec) instead of (h, softvec) ????
>
> Dude, you can't be serious.
>
> If you would have asked about the compiler version I'm using and told
> me about the compiler version you are using, then I could take that
> answer somehow serious.
Heh, gcc has always been of a black magic for what it decided. But,
anyway, I'm using a self built version (vanilla from gcc.gnu.org) of
4.5.1. What are you using?
>
> It still would miss the "Uhhhh, your compiler creates crap code"
> alert, because that double jump is seriously broken and braindead.
>
> And I tell you more about this. You are going to piss off a lot of
> users of distro compilers because they will set CC_HAVE_ASM_GOTO
> happily and create the code I posted. Which will break the tracer no
> matter what.
>
> So you tracer maniacs happily played with some experimental compiler
> stuff w/o even testing your crap against something which ships with
> distros or is the reference 4.5 compiler on kernel.org ?
>
> I prefer you sending a patch to disable this, until it's sorted out,
> unless you want me to add some really outrageous changelog to the
> patch I'm going to put into tip tomorrow night, ok ?
Then lets just compare the crap versions you posted.
> - 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>
Yes, gcc replaced a cmp and conditional jump with two unconditional
jumps. One of these jumps on boot up will be converted to a nop. Thus
the jump label code just converted a compare and conditional jump with a
nop and a non conditional jump.
This still sounds like a win to me, although we can do better. I guess
those poor sobs using a distro kernel compiled with a distro gcc that
has CC_HAVE_ASM_GOTO enabled will still be doing better than if it was
doing the if (enable) code.
-- Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists