OpenSolaris

Printable Version Enter a New Search
Bug ID 5072961
Synopsis Need an optimized MD5 implementation for amd64
State 10-Fix Delivered (Fix available in build)
Category:Subcategory solaris-crypto:algorithms
Keywords SFO | amd64 | ef-perf | ef-reviewed | greyhound | md5 | slug
Responsible Engineer Daniel Anderson
Reported Against s10_37
Duplicate Of
Introduced In solaris_10
Commit to Fix s10u6_01
Fixed In s10u6_01
Release Fixed solaris_10u6(s10u6_01) , solaris_nevada(snv_81) (Bug ID:2152520)
Related Bugs 6407142 , 6628627 , 6644870 , 6647055 , 6799285 , 6188861
Submit Date 12-July-2004
Last Update Date 23-May-2008
Description
 xxxxx@xxxxx.com 2004-07-12

From watching the linux-crypto list, http://mail.nl.linux.org/linux-crypto/
look for Jari Ruusu's email on loop-aes and amd64:

------ Begin excerpt ------------
>
>AMD Opteron 1593.7 MHz, gcc-3.2.2
>

(...)

>
>MD5 C implementation:
>md5 speed 1381.8 Mbits/sec
>
>MD5 assembler implementation:
>md5 speed 2367.1 Mbits/sec
>

------ End excerpt ------------

I don't have an apple-to-apple comparison with Solaris, however, in Solaris,
we have only the C version of MD5 for everything except sparc.
A very rough apple to orange comparison:
On solaris 10, s10_62 (without the PKCS#11 engine), on an
AMD Opteron 1990 MHz

OpenSSL> speed md5  
Doing md5 for 3s on 16 size blocks: 1521653 md5's in 3.02s
Doing md5 for 3s on 64 size blocks: 1139056 md5's in 3.11s
Doing md5 for 3s on 256 size blocks: 592082 md5's in 3.00s
Doing md5 for 3s on 1024 size blocks: 209515 md5's in 3.00s
Doing md5 for 3s on 8192 size blocks: 29685 md5's in 2.99s
OpenSSL 0.9.7d 17 Mar 2004
built on: Thu Apr 15 18:25:19 EDT 2004
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) aes(partial) idea(int) blowfish(idx) 
compiler: gcc -fPIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DOPENSSL_NO_KRB5 -DOPENSSL_NO_ASM -O3 -fomit-frame-pointer -m486 -Wall -DL_ENDIAN -DOPENSSL_NO_INLINE_ASM
available timing options: TIMES TIMEB HZ=100 [sysconf value]
timing function used: times
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md5               8061.74k    23440.38k    50524.33k    71514.45k    81330.94k


The applications expected to be at a competitive performace
disadvantage with Linux are numerous (IPsec, SSL (Apache, JES *) , Java+JCE, 
just to list a few).
Work Around
N/A
Comments
N/A