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]
Message-ID: <20091110203434.GC26633@1wt.eu>
Date:	Tue, 10 Nov 2009 21:34:34 +0100
From:	Willy Tarreau <w@....eu>
To:	"H. Peter Anvin" <hpa@...or.com>
Cc:	Avi Kivity <avi@...hat.com>, Alan Cox <alan@...rguk.ukuu.org.uk>,
	Pavel Machek <pavel@....cz>,
	Matteo Croce <technoboy85@...il.com>,
	Sven-Haegar Koch <haegar@...net.de>,
	Ingo Molnar <mingo@...e.hu>, linux-kernel@...r.kernel.org
Subject: Re: i686 quirk for AMD Geode

On Tue, Nov 10, 2009 at 12:25:02PM -0800, H. Peter Anvin wrote:
> On 11/10/2009 12:16 PM, Willy Tarreau wrote:
> > 
> > Indeed, but there is a difference between [cmpxchg, bswap, cmov, nopl]
> > on one side and [sse*] on the other : distros are built assuming the
> > former are always available while they are not always. And the distro
> > which make the difference have to provide an dedicated build for earlier
> > systems just for compatibility. SSE*, 3dnow* etc... are only used by a
> > handful of media players/converters/encoders which are able to detect
> > themselves what to use and already have the necessary fallbacks because
> > these instruction sets vary too much between processors and vendors.
> > 
> 
> That is increasingly not true since gcc is now doing autovectorization.

But programs have to be built to use that specific platform anyway ; this
is different from all programs built with support for CMOV enabled by
default and which will work on 95% of the platforms.

(...)
> I could 970 cmovs in libc out of 322660 instructions.  That is one in
> 333 instruction.

Not bad, I agree ! But on the C3, CMOV from/to register is implemented.
It's only CMOV from/to memory which has to be emulated, which makes it
a lot less common. Anyway that's why we need counters, so that the user
knows when he really ought to recompile.

(...)
> I don't see any particular subset as being more obvious than the other,
> with the *possible* exception of NOPL, simply because NOPL was
> undocumented for so long.

well, simply the availability of binaries making use of them. I'm not
sure you would find SSE* instructions in your libc where you found the
970 cmov. For NOPL, that's different, I first heard about it in this
thread, and my C3 running with the CMOV patch has never complained from
missing it :-)

Regards,
Willy

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