Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sat, 26 Nov 2011 01:35:21 +0400
From: Solar Designer <solar@...nwall.com>
To: john-dev@...ts.openwall.com
Subject: Re: 1.7.9-jumbo

On Fri, Nov 25, 2011 at 08:54:32AM +0100, magnum wrote:
> Note that I added CPU_detect_or_fallback() to undrop, and (previously)
> to all other binary aliases. I'm not 100% sure this was correct?

I haven't looked at your patches yet, but the above description sounds
correct to me.  We do need to fallback to alternate binary even for
un*() things because the corresponding un*.c source files and other
files that they use code from (e.g. memory.c) are compiled with CFLAGS
potentially including things such as -mavx.  These options not only
enable the corresponding intrinsics, but also let the C compiler emit
such instructions on other occasions.  For example, gcc sometimes emits
SSE2 instructions (if permitted) simply to zeroize consecutive 16 bytes,
which may be needed even in a function that is not vectorized otherwise.
IIRC, on a certain build I've seen some SSE2 instructions in
gcc-generated code for rules_init*().  I guess something similar may be
true for AVX and XOP later on as well (or maybe it already is, although
I haven't faced it yet).

Alexander

Powered by blists - more mailing lists

Your e-mail address:

Powered by Openwall GNU/*/Linux - Powered by OpenVZ