linux-next/arch
Eric Biggers aa2197f566 crypto: x86/aes-xts - wire up VAES + AVX10/512 implementation
Add an AES-XTS implementation "xts-aes-vaes-avx10_512" for x86_64 CPUs
with the VAES, VPCLMULQDQ, and either AVX10/512 or AVX512BW + AVX512VL
extensions.  This implementation uses zmm registers to operate on four
AES blocks at a time.  The assembly code is instantiated using a macro
so that most of the source code is shared with other implementations.

To avoid downclocking on older Intel CPU models, an exclusion list is
used to prevent this 512-bit implementation from being used by default
on some CPU models.  They will use xts-aes-vaes-avx10_256 instead.  For
now, this exclusion list is simply coded into aesni-intel_glue.c.  It
may make sense to eventually move it into a more central location.

xts-aes-vaes-avx10_512 is slightly faster than xts-aes-vaes-avx10_256 on
some current CPUs.  E.g., on AMD Zen 4, AES-256-XTS decryption
throughput increases by 13% with 4096-byte inputs, or 14% with 512-byte
inputs.  On Intel Sapphire Rapids, AES-256-XTS decryption throughput
increases by 2% with 4096-byte inputs, or 3% with 512-byte inputs.

Future CPUs may provide stronger 512-bit support, in which case a larger
benefit should be seen.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2024-04-05 15:46:33 +08:00
..
alpha Kbuild updates for v6.9 2024-03-21 14:41:00 -07:00
arc - Sumanth Korikkar has taught s390 to allocate hotplug-time page frames 2024-03-14 17:43:30 -07:00
arm ARM updates for v6.9-rc1 2024-03-23 09:17:03 -07:00
arm64 arm64 fix/update: 2024-03-21 17:21:41 -07:00
csky - Sumanth Korikkar has taught s390 to allocate hotplug-time page frames 2024-03-14 17:43:30 -07:00
hexagon Kbuild updates for v6.9 2024-03-21 14:41:00 -07:00
loongarch LoongArch changes for v6.9 2024-03-22 10:22:45 -07:00
m68k TTY/Serial driver update for 6.9-rc1 2024-03-21 12:44:10 -07:00
microblaze arch: define CONFIG_PAGE_SIZE_*KB on all architectures 2024-03-06 19:29:09 +01:00
mips S390: 2024-03-15 13:03:13 -07:00
nios2 - Sumanth Korikkar has taught s390 to allocate hotplug-time page frames 2024-03-14 17:43:30 -07:00
openrisc OpenRISC updates for 6.9 2024-03-14 15:53:10 -07:00
parisc Kbuild updates for v6.9 2024-03-21 14:41:00 -07:00
powerpc powerpc updates for 6.9 #2 2024-03-23 09:21:26 -07:00
riscv RISC-V Patches for the 6.9 Merge Window 2024-03-22 10:41:13 -07:00
s390 crypto: remove CONFIG_CRYPTO_STATS 2024-04-02 10:49:38 +08:00
sh sh updates for v6.9 2024-03-21 10:13:47 -07:00
sparc This includes the following changes related to sparc for v6.9: 2024-03-15 12:47:21 -07:00
um Devicetree updates for v6.9: 2024-03-15 12:37:59 -07:00
x86 crypto: x86/aes-xts - wire up VAES + AVX10/512 implementation 2024-04-05 15:46:33 +08:00
xtensa - Sumanth Korikkar has taught s390 to allocate hotplug-time page frames 2024-03-14 17:43:30 -07:00
.gitignore
Kconfig hardening fixes for v6.9-rc1 2024-03-23 08:43:21 -07:00