]> git.baikalelectronics.ru Git - kernel.git/commit
crypto: arch/lib - limit simd usage to 4k chunks
authorJason A. Donenfeld <Jason@zx2c4.com>
Wed, 22 Apr 2020 23:18:53 +0000 (17:18 -0600)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 30 Apr 2020 05:16:59 +0000 (15:16 +1000)
commit1588af3853cd357c8ef4f3d6a332de9cba97b02a
tree0ed965bee44426700d70ca1d6ed40f2f26508684
parente80fc51db7395491dbb94cb2cfa0e9c2b9fa2a8a
crypto: arch/lib - limit simd usage to 4k chunks

The initial Zinc patchset, after some mailing list discussion, contained
code to ensure that kernel_fpu_enable would not be kept on for more than
a 4k chunk, since it disables preemption. The choice of 4k isn't totally
scientific, but it's not a bad guess either, and it's what's used in
both the x86 poly1305, blake2s, and nhpoly1305 code already (in the form
of PAGE_SIZE, which this commit corrects to be explicitly 4k for the
former two).

Ard did some back of the envelope calculations and found that
at 5 cycles/byte (overestimate) on a 1ghz processor (pretty slow), 4k
means we have a maximum preemption disabling of 20us, which Sebastian
confirmed was probably a good limit.

Unfortunately the chunking appears to have been left out of the final
patchset that added the glue code. So, this commit adds it back in.

Fixes: 281c7a234197 ("crypto: x86/chacha - expose SIMD ChaCha routine as library function")
Fixes: 7338559102c7 ("crypto: arm64/chacha - expose arm64 ChaCha routine as library function")
Fixes: 0e4d048643ea ("crypto: arm/chacha - expose ARM ChaCha routine as library function")
Fixes: 9a8ee5d159ff ("crypto: x86/poly1305 - wire up faster implementations for kernel")
Fixes: 80f996392bcc ("crypto: arm64/poly1305 - incorporate OpenSSL/CRYPTOGAMS NEON implementation")
Fixes: bb24f38a4cc8 ("crypto: arm/poly1305 - incorporate OpenSSL/CRYPTOGAMS NEON implementation")
Fixes: eca513abaffd ("crypto: blake2s - x86_64 SIMD implementation")
Cc: Eric Biggers <ebiggers@google.com>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: stable@vger.kernel.org
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
arch/arm/crypto/chacha-glue.c
arch/arm/crypto/poly1305-glue.c
arch/arm64/crypto/chacha-neon-glue.c
arch/arm64/crypto/poly1305-glue.c
arch/x86/crypto/blake2s-glue.c
arch/x86/crypto/chacha_glue.c
arch/x86/crypto/poly1305_glue.c