[gnutls-devel] GnuTLS | slow performance on IBM POWER architecture (#853)

Development of GNU's TLS library gnutls-devel at lists.gnutls.org
Fri Oct 25 19:27:17 CEST 2019



Björn Jacke created an issue: https://gitlab.com/gnutls/gnutls/issues/853



the AES performance of GnuTLS is quite bad compared to openssl on AIX on POWER. The POWER architecture has AES instruction and they the shipped openssl version makes use of this obviously, here are the aes gcm/ccm benchmark numbers for openssl on AIX 7.1 on a single core POWER9 machine:

# openssl speed -elapsed -evp aes-128-ccm
...
options:bn(64,32) rc4(ptr,char) des(idx,cisc,2,long) aes(partial) blowfish(idx) 
compiler: cc -I. -I.. -I../include  -DOPENSSL_THREADS -qthreaded -D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -DSSL_ALLOW_ADH -DAIXSSL_IBM_VERSION=1.0.2.1100 -q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DVPAES_ASM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-128-ccm     230501.53k   931205.48k  3716121.69k 14873766.91k 119393654.10k

# openssl speed -elapsed -evp aes-128-gcm
options:bn(64,32) rc4(ptr,char) des(idx,cisc,2,long) aes(partial) blowfish(idx) 
compiler: cc -I. -I.. -I../include  -DOPENSSL_THREADS -qthreaded -D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -DSSL_ALLOW_ADH -DAIXSSL_IBM_VERSION=1.0.2.1100 -q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DVPAES_ASM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-128-gcm     227103.28k   545682.50k  1579801.94k  2419030.70k  2795500.89k

The GnuTLS numbers are *magnitudes* lower:

# gnutls-cli --benchmark-tls-ciphers
Testing throughput in cipher/MAC combinations (payload: 1400 bytes)
                   AES-128-GCM - TLS1.2  7.18 MB/sec
                   AES-128-GCM - TLS1.3  12.57 MB/sec
                   AES-128-CCM - TLS1.2  14.71 MB/sec
                   AES-128-CCM - TLS1.3  14.64 MB/sec
             CHACHA20-POLY1305 - TLS1.2  17.14 MB/sec
             CHACHA20-POLY1305 - TLS1.3  16.97 MB/sec
                   AES-128-CBC - TLS1.0  14.48 MB/sec
              CAMELLIA-128-CBC - TLS1.0  7.94 MB/sec

Testing throughput in cipher/MAC combinations (payload: 16384 bytes)
                   AES-128-GCM - TLS1.2  13.30 MB/sec
                   AES-128-GCM - TLS1.3  13.22 MB/sec
                   AES-128-CCM - TLS1.2  15.67 MB/sec
                   AES-128-CCM - TLS1.3  15.61 MB/sec
             CHACHA20-POLY1305 - TLS1.2  18.59 MB/sec
             CHACHA20-POLY1305 - TLS1.3  18.47 MB/sec
                   AES-128-CBC - TLS1.0  16.12 MB/sec
              CAMELLIA-128-CBC - TLS1.0  8.38 MB/sec

Would it be possible to get to get the improvements that openssl has also to GnuTLS? IBM might be interested to push that improvement together with Red Hat also for the Linux PPC architecture and the result might be beneficial for Linux and AIX in the end.

-- 
Reply to this email directly or view it on GitLab: https://gitlab.com/gnutls/gnutls/issues/853
You're receiving this email because of your account on gitlab.com.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.gnupg.org/pipermail/gnutls-devel/attachments/20191025/30b9e3c8/attachment.html>


More information about the Gnutls-devel mailing list