On 4/4/19 3:32 AM, ramakrushna mishra wrote: > Hi, > > Could anyone please help me get the following information. > > -- How to verify that the openssl is using the assembly code ( when asm > is enabled) instead of the c code for the algorithms ? > -- I m observing a small degradation (2 % for 16 byte size) for des-ede3 > on openssl1.1.1 for Solaris. This might not be suggested to use the > algorithm, but for learning purpose is there something that I can do to > see if this can be improved. You will see plenty of lost performance on Solaris. It is a very very slow old platform. Also very little anyone can do to fix that. For example here is a 15 year old Apple PowerMac : hydra$ uname -a FreeBSD hydra 13.0-CURRENT FreeBSD 13.0-CURRENT r344744 GENERIC powerpc hydra$ /usr/bin/openssl version OpenSSL 1.1.1b-freebsd 26 Feb 2019 hydra$ /usr/bin/openssl speed rsa4096 Doing 4096 bits private rsa's for 10s: 83 4096 bits private RSA's in 10.02s Doing 4096 bits public rsa's for 10s: 5808 4096 bits public RSA's in 10.00s OpenSSL 1.1.1b-freebsd 26 Feb 2019 built on: reproducible build, date unspecified options:bn(64,64) rc4(int) des(int) aes(partial) idea(int) blowfish(ptr) compiler: gcc sign verify sign/s verify/s rsa 4096 bits 0.120764s 0.001722s 8.3 580.8 hydra$ Here is a fairly new Oracle M3000 server : s10sparc$ uname -a SunOS corv 5.10 Generic_150400-64 sun4u sparc SUNW,SPARC-Enterprise s10sparc$ /bin/sparcv9/openssl version OpenSSL 1.0.2p 14 Aug 2018 s10sparc$ /bin/sparcv9/openssl speed rsa4096 Doing 4096 bit private rsa's for 10s: 86 4096 bit private RSA's in 10.06s Doing 4096 bit public rsa's for 10s: 5896 4096 bit public RSA's in 10.00s OpenSSL 1.0.2p 14 Aug 2018 built on: date not available options:bn(64,32) md2(int) rc4(ptr,int) des(ptr,risc1,16,int) aes(partial) blowfish(ptr) compiler: information not available sign verify sign/s verify/s rsa 4096 bits 0.116977s 0.001696s 8.5 589.6 s10sparc$ An expensive Oracle Netra T4-1 is not much better. s10sparc$ /usr/local/bin/openssl version OpenSSL 1.1.1b 26 Feb 2019 s10sparc$ /usr/local/bin/openssl speed rsa4096 Doing 4096 bits private rsa's for 10s: 78 4096 bits private RSA's in 10.08s Doing 4096 bits public rsa's for 10s: 8229 4096 bits public RSA's in 10.00s OpenSSL 1.1.1b 26 Feb 2019 built on: Tue Mar 26 06:51:39 2019 UTC options:bn(64,32) rc4(char) des(int) aes(partial) idea(int) blowfish(ptr) compiler: /opt/developerstudio12.6/bin/cc -KPIC -m64 -Xa -g -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -xmemalign=8s -xnolibmil -xcode=pic32 -xregs=no%appl -xlibmieee -mc -ftrap=%none -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xarch=sparc -xdebugformat=dwarf -xstrconst -m64 -xarch=sparc -g -Xa -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -xmemalign=8s -xnolibmil -xcode=pic32 -xregs=no%appl -xlibmieee -mc -ftrap=%none -xbuiltin=%none -xunroll=1 -Qy -xdebugformat=dwarf -DFILIO_H -DB_ENDIAN -DBN_DIV2W -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -D_REENTRANT -DNDEBUG -I/usr/local/include -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -D_TS_ERRNO sign verify sign/s verify/s rsa 4096 bits 0.129231s 0.001215s 7.7 822.9 s10sparc$ Also a dirt cheap machine built from spare parts : fbsd_amd64$ fbsd_amd64$ uname -a FreeBSD vesta 13.0-CURRENT FreeBSD 13.0-CURRENT r345173 GENERIC amd64 fbsd_amd64$ /usr/bin/openssl version OpenSSL 1.1.1b-freebsd 26 Feb 2019 fbsd_amd64$ /usr/bin/openssl speed rsa4096 Doing 4096 bits private rsa's for 10s: 638 4096 bits private RSA's in 10.07s Doing 4096 bits public rsa's for 10s: 43106 4096 bits public RSA's in 10.03s OpenSSL 1.1.1b-freebsd 26 Feb 2019 built on: reproducible build, date unspecified options:bn(64,64) rc4(8x,int) des(int) aes(partial) idea(int) blowfish(ptr) compiler: clang sign verify sign/s verify/s rsa 4096 bits 0.015784s 0.000233s 63.4 4297.2 fbsd_amd64$ Don't go looking for performance on Solaris anymore. It isn't there. Dennis