Home GnuPG

Add bulk AES-GCM acceleration for s390x/zSeries

Description

Add bulk AES-GCM acceleration for s390x/zSeries

* cipher/Makefile.am: Add 'asm-inline-s390x.h'.
* cipher/asm-inline-s390x.h: New.
* cipher/cipher-gcm.c [GCM_USE_S390X_CRYPTO] (ghash_s390x_kimd): New.
(setupM) [GCM_USE_S390X_CRYPTO]: Add setup for s390x GHASH function.
* cipher/cipher-internal.h (GCM_USE_S390X_CRYPTO): New.
* cipher/rijndael-s390x.c (u128_t, km_functions_e): Move to
'asm-inline-s390x.h'.
(aes_s390x_gcm_crypt): New.
(_gcry_aes_s390x_setup_acceleration): Use 'km_function_to_mask'; Add
setup for GCM bulk function.

This patch adds zSeries acceleration for GHASH and AES-GCM.

Benchmarks (z15, 5.2Ghz):

Before:
AES | nanosecs/byte mebibytes/sec cycles/byte

 GCM enc |      2.64 ns/B     361.6 MiB/s     13.71 c/B
 GCM dec |      2.64 ns/B     361.3 MiB/s     13.72 c/B
GCM auth |      2.58 ns/B     370.1 MiB/s     13.40 c/B

After:
AES | nanosecs/byte mebibytes/sec cycles/byte

 GCM enc |     0.059 ns/B     16066 MiB/s     0.309 c/B
 GCM dec |     0.059 ns/B     16114 MiB/s     0.308 c/B
GCM auth |     0.057 ns/B     16747 MiB/s     0.296 c/B
  • Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>

Details

Provenance
jukiviliAuthored on Nov 7 2020, 10:45 AM
Parents
rCf4e63e92dc0b: Add bulk function interface for GCM mode
Branches
Unknown
Tags
Unknown