[PATCH] crypto/arm: accelerated SHA-512 using ARM generic ASM and NEON

Jussi Kivilinna jussi.kivilinna at iki.fi
Sat Mar 28 03:37:44 PDT 2015


On 28.03.2015 09:28, Ard Biesheuvel wrote:
> This updates the SHA-512 NEON module with the faster and more
> versatile implementation from the OpenSSL project. It consists
> of both a NEON and a generic ASM version of the core SHA-512
> transform, where the NEON version reverts to the ASM version
> when invoked in non-process context.
> 
> Performance relative to the generic implementation (measured
> using tcrypt.ko mode=306 sec=1 running on a Cortex-A57 under
> KVM):
> 
> 	input size	block size	asm	neon	old neon
> 
> 	16		16		1.39	2.54	2.21
> 	64		16		1.32	2.33	2.09
> 	64		64		1.38	2.53	2.19
> 	256		16		1.31	2.28	2.06
> 	256		64		1.38	2.54	2.25
> 	256		256		1.40	2.77	2.39
> 	1024		16		1.29	2.22	2.01
> 	1024		256		1.40	2.82	2.45
> 	1024		1024		1.41	2.93	2.53
> 	2048		16		1.33	2.21	2.00
> 	2048		256		1.40	2.84	2.46
> 	2048		1024		1.41	2.96	2.55
> 	2048		2048		1.41	2.98	2.56
> 	4096		16		1.34	2.20	1.99
> 	4096		256		1.40	2.84	2.46
> 	4096		1024		1.41	2.97	2.56
> 	4096		4096		1.41	3.01	2.58
> 	8192		16		1.34	2.19	1.99
> 	8192		256		1.40	2.85	2.47
> 	8192		1024		1.41	2.98	2.56
> 	8192		4096		1.41	2.71	2.59
> 	8192		8192		1.51	3.51	2.69
> 
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel at linaro.org>
> ---
> 
> This should get the same treatment as Sami's sha56 version: I would like
> to wait until the OpenSSL source file hits the upstream repository so that
> I can refer to its sha1 hash in the commit log.
> 
>  arch/arm/crypto/Kconfig               |    2 -
>  arch/arm/crypto/Makefile              |    8 +-
>  arch/arm/crypto/sha512-armv4.pl       |  656 ++++++++++++
>  arch/arm/crypto/sha512-armv7-neon.S   |  455 ---------
>  arch/arm/crypto/sha512-core.S_shipped | 1814 +++++++++++++++++++++++++++++++++
>  arch/arm/crypto/sha512.h              |   14 +
>  arch/arm/crypto/sha512_glue.c         |  255 +++++
>  arch/arm/crypto/sha512_neon_glue.c    |  155 +--
>  8 files changed, 2762 insertions(+), 597 deletions(-)
>  create mode 100644 arch/arm/crypto/sha512-armv4.pl
>  delete mode 100644 arch/arm/crypto/sha512-armv7-neon.S

Acked-by: Jussi Kivilinna <jussi.kivilinna at iki.fi>

>  create mode 100644 arch/arm/crypto/sha512-core.S_shipped
>  create mode 100644 arch/arm/crypto/sha512.h
>  create mode 100644 arch/arm/crypto/sha512_glue.c
> 



More information about the linux-arm-kernel mailing list