openssl/crypto/aes
Sebastian Pop 9c140a3366 disable 5x interleave on buffers shorter than 512 bytes: 3% speedup on Graviton2
d6e4287c97 introduced 5x interleaving as an
optimization for ThunderX2, and that leads to some performance degradation on
when encoding short buffers.  We found this performance degradation by measuring
the performance of nginx on Ubuntu 20.04 that comes with OpenSSL 1.1.1f and
Ubuntu 22.04 with OpenSSL 3.0.1.

This patch limits the 5x interleave to buffers larger than 512 bytes.
On Graviton2 we see the following performance with this patch:

$ openssl speed -evp aes-128-gcm -bytes 128

AES-128-GCM   64 bytes     79 bytes     80 bytes     128 bytes    256 bytes    511 bytes    512 bytes    1024 bytes
master        1062564.71k  775113.11k   1069959.33k  1411716.28k  1653114.86k  1585981.16k  1973683.03k  2203214.08k
master+patch  1062729.28k  771915.11k   1103883.42k  1458665.43k  1708701.20k  1647060.84k  1975571.80k  2204038.42k
diff          0%           0%           3%           3%           3%           4%           0%           0%
revert d6e428 1055290.03k  773448.92k   1117411.97k  1441478.57k  1695698.52k  1634598.04k  1981851.65k  2196680.36k

CLA: trivial

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/17984)
2022-03-31 16:28:42 +11:00
..
asm disable 5x interleave on buffers shorter than 512 bytes: 3% speedup on Graviton2 2022-03-31 16:28:42 +11:00
aes_cbc.c Update copyright year 2020-04-23 13:55:52 +01:00
aes_cfb.c Update copyright year 2020-04-23 13:55:52 +01:00
aes_core.c aes: make the no-asm constant time code path not the default 2022-01-31 11:39:00 +11:00
aes_ecb.c Update copyright year 2020-04-23 13:55:52 +01:00
aes_ige.c remove unused initialisations 2020-12-03 11:22:06 +10:00
aes_local.h Update copyright year 2021-06-17 13:24:59 +01:00
aes_misc.c Update copyright year 2020-04-23 13:55:52 +01:00
aes_ofb.c Update copyright year 2020-04-23 13:55:52 +01:00
aes_wrap.c Update copyright year 2020-04-23 13:55:52 +01:00
aes_x86core.c fix some code with obvious wrong coding style 2021-10-28 13:10:46 +10:00
build.info Use Perl to generate bsaes-armv8.S 2022-03-09 17:50:03 +01:00