lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ