diff options
| author | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2015-02-19 17:25:16 +0000 |
|---|---|---|
| committer | Mister Oyster <oysterized@gmail.com> | 2017-12-21 14:35:31 +0100 |
| commit | 9eb2ab6e036eafdf4c3800f9cb1fa4a8c412fb8c (patch) | |
| tree | 64af0e35f6e743e0ad393992e45cbbe4220ff37a | |
| parent | 8a54c75713f2c0bb663cc49f033bd1c3062d63ed (diff) | |
arm64: crypto: increase AES interleave to 4x
This patch increases the interleave factor for parallel AES modes
to 4x. This improves performance on Cortex-A57 by ~35%. This is
due to the 3-cycle latency of AES instructions on the A57's
relatively deep pipeline (compared to Cortex-A53 where the AES
instruction latency is only 2 cycles).
At the same time, disable inline expansion of the core AES functions,
as the performance benefit of this feature is negligible.
Measured on AMD Seattle (using tcrypt.ko mode=500 sec=1):
Baseline (2x interleave, inline expansion)
------------------------------------------
testing speed of async cbc(aes) (cbc-aes-ce) decryption
test 4 (128 bit key, 8192 byte blocks): 95545 operations in 1 seconds
test 14 (256 bit key, 8192 byte blocks): 68496 operations in 1 seconds
This patch (4x interleave, no inline expansion)
-----------------------------------------------
testing speed of async cbc(aes) (cbc-aes-ce) decryption
test 4 (128 bit key, 8192 byte blocks): 124735 operations in 1 seconds
test 14 (256 bit key, 8192 byte blocks): 92328 operations in 1 seconds
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 0eee0fbd41c7b57d01136df2519c92ec1506e333)
Change-Id: I0fb82b0cc7f685a13c3d15c919be435917e17429
| -rw-r--r-- | arch/arm64/crypto/Makefile | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm64/crypto/Makefile b/arch/arm64/crypto/Makefile index 401a605a5..770786728 100644 --- a/arch/arm64/crypto/Makefile +++ b/arch/arm64/crypto/Makefile @@ -35,7 +35,7 @@ sha256-arm64-y := sha256-glue.o sha256-core.o obj-$(CONFIG_CRYPTO_SHA512_ARM64) += sha512-arm64.o sha512-arm64-y := sha512-glue.o sha512-core.o -AFLAGS_aes-ce.o := -DINTERLEAVE=2 -DINTERLEAVE_INLINE +AFLAGS_aes-ce.o := -DINTERLEAVE=4 AFLAGS_aes-neon.o := -DINTERLEAVE=4 CFLAGS_aes-glue-ce.o := -DUSE_V8_CRYPTO_EXTENSIONS |
