All of lore.kernel.org
 help / color / mirror / Atom feed
From: liulongfang <liulongfang@huawei.com>
To: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>,
	Herbert Xu <herbert@gondor.apana.org.au>,
	"David S. Miller" <davem@davemloft.net>,
	Vitaly Chikunov <vt@altlinux.org>,
	Eric Biggers <ebiggers@google.com>,
	"Eric Biggers" <ebiggers@kernel.org>,
	Gilad Ben-Yossef <gilad@benyossef.com>,
	"Ard Biesheuvel" <ardb@kernel.org>,
	Jussi Kivilinna <jussi.kivilinna@iki.fi>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>, <linux-crypto@vger.kernel.org>,
	<x86@kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 2/6] crypto: arm64/sm3-ce - make dependent on sm3 library
Date: Fri, 31 Dec 2021 15:05:31 +0800	[thread overview]
Message-ID: <18fdaf2c-827e-8d17-1eb7-cb1c12d15808@huawei.com> (raw)
In-Reply-To: <20211222045022.27069-3-tianjia.zhang@linux.alibaba.com>

On 2021/12/22 12:50, Tianjia Zhang Wrote:
> SM3 generic library is stand-alone implementation, sm3-ce can depend
> on the SM3 library instead of sm3-generic.
> 
> Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
> ---
>  arch/arm64/crypto/Kconfig       |  2 +-
>  arch/arm64/crypto/sm3-ce-glue.c | 20 ++++++++++++++------
>  2 files changed, 15 insertions(+), 7 deletions(-)
> 
> diff --git a/arch/arm64/crypto/Kconfig b/arch/arm64/crypto/Kconfig
> index addfa413650b..2a965aa0188d 100644
> --- a/arch/arm64/crypto/Kconfig
> +++ b/arch/arm64/crypto/Kconfig
> @@ -45,7 +45,7 @@ config CRYPTO_SM3_ARM64_CE
>  	tristate "SM3 digest algorithm (ARMv8.2 Crypto Extensions)"
>  	depends on KERNEL_MODE_NEON
>  	select CRYPTO_HASH
> -	select CRYPTO_SM3
> +	select CRYPTO_LIB_SM3
>  
>  config CRYPTO_SM4_ARM64_CE
>  	tristate "SM4 symmetric cipher (ARMv8.2 Crypto Extensions)"
> diff --git a/arch/arm64/crypto/sm3-ce-glue.c b/arch/arm64/crypto/sm3-ce-glue.c
> index d71faca322f2..3198f31c9446 100644
> --- a/arch/arm64/crypto/sm3-ce-glue.c
> +++ b/arch/arm64/crypto/sm3-ce-glue.c
> @@ -27,7 +27,7 @@ static int sm3_ce_update(struct shash_desc *desc, const u8 *data,
>  			 unsigned int len)
>  {
>  	if (!crypto_simd_usable())
> -		return crypto_sm3_update(desc, data, len);
> +		return sm3_update(shash_desc_ctx(desc), data, len);
>  
>  	kernel_neon_begin();
>  	sm3_base_do_update(desc, data, len, sm3_ce_transform);
> @@ -39,7 +39,7 @@ static int sm3_ce_update(struct shash_desc *desc, const u8 *data,
>  static int sm3_ce_final(struct shash_desc *desc, u8 *out)
>  {
>  	if (!crypto_simd_usable())
> -		return crypto_sm3_finup(desc, NULL, 0, out);
> +		return sm3_final(shash_desc_ctx(desc), out);
>  
>  	kernel_neon_begin();
>  	sm3_base_do_finalize(desc, sm3_ce_transform);
> @@ -51,14 +51,22 @@ static int sm3_ce_final(struct shash_desc *desc, u8 *out)
>  static int sm3_ce_finup(struct shash_desc *desc, const u8 *data,
>  			unsigned int len, u8 *out)
>  {
> -	if (!crypto_simd_usable())
> -		return crypto_sm3_finup(desc, data, len, out);
> +	if (!crypto_simd_usable()) {
> +		struct sm3_state *sctx = shash_desc_ctx(desc);
> +
> +		if (len)
> +			sm3_update(sctx, data, len);
> +		sm3_final(sctx, out);
> +		return 0;
> +	}
>  
>  	kernel_neon_begin();
> -	sm3_base_do_update(desc, data, len, sm3_ce_transform);
> +	if (len)
> +		sm3_base_do_update(desc, data, len, sm3_ce_transform);
> +	sm3_base_do_finalize(desc, sm3_ce_transform);
>  	kernel_neon_end();
>  
> -	return sm3_ce_final(desc, out);
> +	return sm3_base_finish(desc, out);
>  }
>  
>  static struct shash_alg sm3_alg = {
>You have modified the implementation of SM3 algorithm, so what benefits will be gained
after such modification?
What flaws are solved or can performance be improved?
Thanks.
Longfang.

WARNING: multiple messages have this Message-ID (diff)
From: liulongfang <liulongfang@huawei.com>
To: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>,
	Herbert Xu <herbert@gondor.apana.org.au>,
	"David S. Miller" <davem@davemloft.net>,
	Vitaly Chikunov <vt@altlinux.org>,
	Eric Biggers <ebiggers@google.com>,
	"Eric Biggers" <ebiggers@kernel.org>,
	Gilad Ben-Yossef <gilad@benyossef.com>,
	"Ard Biesheuvel" <ardb@kernel.org>,
	Jussi Kivilinna <jussi.kivilinna@iki.fi>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>, <linux-crypto@vger.kernel.org>,
	<x86@kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 2/6] crypto: arm64/sm3-ce - make dependent on sm3 library
Date: Fri, 31 Dec 2021 15:05:31 +0800	[thread overview]
Message-ID: <18fdaf2c-827e-8d17-1eb7-cb1c12d15808@huawei.com> (raw)
In-Reply-To: <20211222045022.27069-3-tianjia.zhang@linux.alibaba.com>

On 2021/12/22 12:50, Tianjia Zhang Wrote:
> SM3 generic library is stand-alone implementation, sm3-ce can depend
> on the SM3 library instead of sm3-generic.
> 
> Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
> ---
>  arch/arm64/crypto/Kconfig       |  2 +-
>  arch/arm64/crypto/sm3-ce-glue.c | 20 ++++++++++++++------
>  2 files changed, 15 insertions(+), 7 deletions(-)
> 
> diff --git a/arch/arm64/crypto/Kconfig b/arch/arm64/crypto/Kconfig
> index addfa413650b..2a965aa0188d 100644
> --- a/arch/arm64/crypto/Kconfig
> +++ b/arch/arm64/crypto/Kconfig
> @@ -45,7 +45,7 @@ config CRYPTO_SM3_ARM64_CE
>  	tristate "SM3 digest algorithm (ARMv8.2 Crypto Extensions)"
>  	depends on KERNEL_MODE_NEON
>  	select CRYPTO_HASH
> -	select CRYPTO_SM3
> +	select CRYPTO_LIB_SM3
>  
>  config CRYPTO_SM4_ARM64_CE
>  	tristate "SM4 symmetric cipher (ARMv8.2 Crypto Extensions)"
> diff --git a/arch/arm64/crypto/sm3-ce-glue.c b/arch/arm64/crypto/sm3-ce-glue.c
> index d71faca322f2..3198f31c9446 100644
> --- a/arch/arm64/crypto/sm3-ce-glue.c
> +++ b/arch/arm64/crypto/sm3-ce-glue.c
> @@ -27,7 +27,7 @@ static int sm3_ce_update(struct shash_desc *desc, const u8 *data,
>  			 unsigned int len)
>  {
>  	if (!crypto_simd_usable())
> -		return crypto_sm3_update(desc, data, len);
> +		return sm3_update(shash_desc_ctx(desc), data, len);
>  
>  	kernel_neon_begin();
>  	sm3_base_do_update(desc, data, len, sm3_ce_transform);
> @@ -39,7 +39,7 @@ static int sm3_ce_update(struct shash_desc *desc, const u8 *data,
>  static int sm3_ce_final(struct shash_desc *desc, u8 *out)
>  {
>  	if (!crypto_simd_usable())
> -		return crypto_sm3_finup(desc, NULL, 0, out);
> +		return sm3_final(shash_desc_ctx(desc), out);
>  
>  	kernel_neon_begin();
>  	sm3_base_do_finalize(desc, sm3_ce_transform);
> @@ -51,14 +51,22 @@ static int sm3_ce_final(struct shash_desc *desc, u8 *out)
>  static int sm3_ce_finup(struct shash_desc *desc, const u8 *data,
>  			unsigned int len, u8 *out)
>  {
> -	if (!crypto_simd_usable())
> -		return crypto_sm3_finup(desc, data, len, out);
> +	if (!crypto_simd_usable()) {
> +		struct sm3_state *sctx = shash_desc_ctx(desc);
> +
> +		if (len)
> +			sm3_update(sctx, data, len);
> +		sm3_final(sctx, out);
> +		return 0;
> +	}
>  
>  	kernel_neon_begin();
> -	sm3_base_do_update(desc, data, len, sm3_ce_transform);
> +	if (len)
> +		sm3_base_do_update(desc, data, len, sm3_ce_transform);
> +	sm3_base_do_finalize(desc, sm3_ce_transform);
>  	kernel_neon_end();
>  
> -	return sm3_ce_final(desc, out);
> +	return sm3_base_finish(desc, out);
>  }
>  
>  static struct shash_alg sm3_alg = {
>You have modified the implementation of SM3 algorithm, so what benefits will be gained
after such modification?
What flaws are solved or can performance be improved?
Thanks.
Longfang.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-12-31  7:05 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-22  4:50 [PATCH v2 0/6] Introduce x86 assembly accelerated implementation for SM3 algorithm Tianjia Zhang
2021-12-22  4:50 ` Tianjia Zhang
2021-12-22  4:50 ` [PATCH v2 1/6] crypto: sm3 - create SM3 stand-alone library Tianjia Zhang
2021-12-22  4:50   ` Tianjia Zhang
2021-12-22  6:59   ` Gilad Ben-Yossef
2021-12-22  6:59     ` Gilad Ben-Yossef
2021-12-22 13:11     ` Tianjia Zhang
2021-12-22 13:11       ` Tianjia Zhang
2021-12-22  4:50 ` [PATCH v2 2/6] crypto: arm64/sm3-ce - make dependent on sm3 library Tianjia Zhang
2021-12-22  4:50   ` Tianjia Zhang
2021-12-31  7:05   ` liulongfang [this message]
2021-12-31  7:05     ` liulongfang
2021-12-31 11:00     ` Tianjia Zhang
2021-12-31 11:00       ` Tianjia Zhang
2021-12-22  4:50 ` [PATCH v2 3/6] crypto: sm2 " Tianjia Zhang
2021-12-22  4:50   ` Tianjia Zhang
2021-12-22  4:50 ` [PATCH v2 4/6] crypto: sm3 " Tianjia Zhang
2021-12-22  4:50   ` Tianjia Zhang
2021-12-22  4:50 ` [PATCH v2 5/6] crypto: x86/sm3 - add AVX assembly implementation Tianjia Zhang
2021-12-22  4:50   ` Tianjia Zhang
2021-12-22  4:50 ` [PATCH v2 6/6] crypto: tcrypt - add asynchronous speed test for SM3 Tianjia Zhang
2021-12-22  4:50   ` Tianjia Zhang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=18fdaf2c-827e-8d17-1eb7-cb1c12d15808@huawei.com \
    --to=liulongfang@huawei.com \
    --cc=ardb@kernel.org \
    --cc=bp@alien8.de \
    --cc=catalin.marinas@arm.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=davem@davemloft.net \
    --cc=ebiggers@google.com \
    --cc=ebiggers@kernel.org \
    --cc=gilad@benyossef.com \
    --cc=herbert@gondor.apana.org.au \
    --cc=hpa@zytor.com \
    --cc=jussi.kivilinna@iki.fi \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=tianjia.zhang@linux.alibaba.com \
    --cc=vt@altlinux.org \
    --cc=will@kernel.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.