Hey guys,

I've got a couple of quick questions regarding building openSSL with
custom compiler optimization flags. I'm attempting to optimize the
builds of some select OS components specifically for the Intel Atom
under Linux, (I'm using the 2.6.37 kernel, glibc 2.13, binutils 2.21,
gcc 4.5.2; my toolchain has been optimized mostly with the CFLAGS='-O3
-fomit-frame-pointer -march=atom -mtune=atom') and am wondering the
following:

  * How sensitive is it that the openSSL testsuite (make test) will
detect incorrect aggressive compiler optimizations? My guess as to an
answer is 'very', given the size of the testsuite, and the sensitivity
to incorrect data that the crypto problem-space exhibits.
  * Can the openSSL build system detect the specific x86 extensions that
a given processor supports, and include the relevant asm code? (This may
be done at run-time dynamically instead, but how does the library know
what the fastest code path should be?)
  * Does OpenSSL 1.0.0d have a code-path for the Atom?
  * Does anyone else have any experience involving tuning OpenSSL for
the Atom? If so, I'd like to hear the specifics of your results in
optimizing for this processor. If you have had any experience, I'd
encourage you to share your results either on-list or privately.
  * (probably more of a question for the dev list): openssl does not
have a parallel-build-safe build system... Is there a way to benchmark
multi-threaded processors & multi-core processors using the test-suite
that makes use of every possible execution path? This would be a
remarkably useful (synthetic) benchmark for real-world crypto
performance on various architectures.

Provided that I had a bit of direction and support, I'd be willing to
add it to the test suite in small patches. I *would* need to know more
than I currently know about crypto though :)

For those wondering, this is the compile line I'm using with gcc 4.5.2:
        gcc -fPIC -DOPENSSL_PIC -DZLIB_SHARED -DZLIB 
        -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN \
        -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -march=atom \
        -mtune=atom -fomit-frame-pointer -pipe -Wall
        -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 
        -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
        -DMD5_ASM -DRMD160_ASM -DAES_ASM -DWHIRLPOOL_ASM

For those wondering, I'm seeing test suite run-times of about 2 + 1/4
minutes to run using single-thread execution on an atom.

Thanks for your help,
John
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to