[WBEL-devel] Re: openssl security update needed
Lamar Owen
lowen@pari.edu
Sat, 20 Mar 2004 10:39:53 -0500
On Friday 19 March 2004 06:20 pm, Jamey Fletcher wrote:
> And there are issues John's discovered, and others have pointed out, why
> packages should in general be built for i686, with only a very few
> exceptions being built *specifically* for i586. In fact, I *think* you're
> supposed to even built *those* in some weird mode that does a "i686
> *except* for those funky instructions that don't exist on a i586" - some
> memory monitoring registers, I think.
More specifically, most are built with '-march=i386 -mcpu=i686' which both
optimizes for i686 instruction ordering but can still be run on earlier
CPU's. The -march=i386 makes it an '.i386.rpm' but that's OK, since the
instruction ordering is still optimized for i686. It is a tad confusing, but
it works, and the performance benefits of '-march=i686 -mcpu=i686' are
miniscule for OpenSSL.
On non-i386 architectures it's a bigger issue to optimize -march, since with
those typically you get enough newer instructions to make it useful to
optimize for the particular CPU for OpenSSL. In particular, SPARC V7 (sun4c)
is very slow in dealing with SSL stuff. SPARC V8 adds instructions that
help, and V9/SPARC64 adds yet more. So while you can install the plain sparc
(which is V7) RPM of OpenSSL on a V8 (sun4m) or V9/64 (UltraSPARC is 64 and
V9, and I think maybe HyperSPARC is a sortof V9 but 32 bit, although the
UltraSPARC RPMs are not 64bit, so their arch is 'sparcv9' instead of sparc64)
your performance stinks if you do. OpenSSL is one of the very few cases that
that is so, except for the kernel and glibc, of course. Although the RPMs
for the Aurora SPARC Linux dist even on 32 bit SPARCs are compiled with
UltraSPARC optimized ordering, that is '-march=sparc -mcpu=ultrasparc'. Oh,
but even on the 64 bit UltraSPARC you use 32 bit userland, only the kernel is
64 bit, along with portions of glibc. Performance is better that way; typical
32 bit code on the Ultra executes more quickly and takes up less space and
memory than 64 bit code in user mode, at least under Linux. Only when you
need huge numbers or huge amounts of memory do you need 64 bit code
(UltraSPARC servers can easily have 8 or more CPUs with 16 or even 64GB of
RAM in the larger configurations).
Lovely stuff, no? :-)
--
Lamar Owen
Director of Information Technology
Pisgah Astronomical Research Institute
1 PARI Drive
Rosman, NC 28772
(828)862-5554
www.pari.edu