All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
To: Tim Chen <tim.c.chen@linux.intel.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"David S.Miller" <davem@davemloft.net>,
	Kirk Yap <kirk.s.yap@intel.com>,
	David Cote <david.m.cote@intel.com>,
	James Guilford <james.guilford@intel.com>,
	Wajdi Feghali <wajdi.k.feghali@intel.com>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-crypto@vger.kernel.org
Subject: Re: [PATCH 11/11] Create module providing optimized SHA512 routines using SSSE3, AVX or AVX2 instructions.
Date: Sun, 24 Mar 2013 13:36:54 +0200	[thread overview]
Message-ID: <514EE556.7020004@iki.fi> (raw)
In-Reply-To: <1363987779.8972.65.camel@schen9-DESK>

On 22.03.2013 23:29, Tim Chen wrote:
> We added glue code and config options to create crypto
> module that uses SSE/AVX/AVX2 optimized SHA512 x86_64 assembly routines.
> 
> Signed-off-by: Tim Chen <tim.c.chen@linux.intel.com>
> ---
>  arch/x86/crypto/Makefile            |   2 +
>  arch/x86/crypto/sha512_ssse3_glue.c | 276 ++++++++++++++++++++++++++++++++++++
>  crypto/Kconfig                      |  11 ++
>  3 files changed, 289 insertions(+)
>  create mode 100644 arch/x86/crypto/sha512_ssse3_glue.c
> 
> diff --git a/arch/x86/crypto/Makefile b/arch/x86/crypto/Makefile
> index 02a664a..7d12625 100644
> --- a/arch/x86/crypto/Makefile
> +++ b/arch/x86/crypto/Makefile
> @@ -28,6 +28,7 @@ obj-$(CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL) += ghash-clmulni-intel.o
>  obj-$(CONFIG_CRYPTO_CRC32C_INTEL) += crc32c-intel.o
>  obj-$(CONFIG_CRYPTO_SHA1_SSSE3) += sha1-ssse3.o
>  obj-$(CONFIG_CRYPTO_SHA256_SSSE3) += sha256-ssse3.o
> +obj-$(CONFIG_CRYPTO_SHA512_SSSE3) += sha512-ssse3.o
>  
>  aes-i586-y := aes-i586-asm_32.o aes_glue.o
>  twofish-i586-y := twofish-i586-asm_32.o twofish_glue.o
> @@ -54,3 +55,4 @@ sha1-ssse3-y := sha1_ssse3_asm.o sha1_ssse3_glue.o
>  crc32c-intel-y := crc32c-intel_glue.o
>  crc32c-intel-$(CONFIG_CRYPTO_CRC32C_X86_64) += crc32c-pcl-intel-asm_64.o
>  sha256-ssse3-y := sha256-ssse3-asm.o sha256-avx-asm.o sha256-avx2-asm.o sha256_ssse3_glue.o
> +sha512-ssse3-y := sha512-ssse3-asm.o sha512-avx-asm.o sha512-avx2-asm.o sha512_ssse3_glue.o
> diff --git a/arch/x86/crypto/sha512_ssse3_glue.c b/arch/x86/crypto/sha512_ssse3_glue.c
> new file mode 100644
> index 0000000..25a2e07
> --- /dev/null
> +++ b/arch/x86/crypto/sha512_ssse3_glue.c

...snip..

> +#include <linux/string.h>
> +
> +asmlinkage void sha512_transform_ssse3(const char *data, u64 *digest,
> +				     u64 rounds);
> +#ifdef CONFIG_AS_AVX
> +asmlinkage void sha512_transform_avx(const char *data, u64 *digest,
> +				     u64 rounds);
> +asmlinkage void sha512_transform_rorx(const char *data, u64 *digest,
> +				     u64 rounds);
> +#endif
> +

Is CONFIG_AS_AVX enough to ensure that rorx is supported by assembler?

You also have #ifdef CONFIG_AS_AVX / #endif missing in 'sha256-avx-asm.S', 'sha256-avx2-asm.S', 'sha512-avx-asm.S' and 'sha512-avx2-asm.S'.

-Jussi

WARNING: multiple messages have this Message-ID (diff)
From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
To: Tim Chen <tim.c.chen@linux.intel.com>
Cc: Herbert Xu <herbert@gondor.hengli.com.au>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"David S.Miller" <davem@davemloft.net>,
	Kirk Yap <kirk.s.yap@intel.com>,
	David Cote <david.m.cote@intel.com>,
	James Guilford <james.guilford@intel.com>,
	Wajdi Feghali <wajdi.k.feghali@intel.com>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-crypto@vger.kernel.org
Subject: Re: [PATCH 11/11] Create module providing optimized SHA512 routines using SSSE3, AVX or AVX2 instructions.
Date: Sun, 24 Mar 2013 13:36:54 +0200	[thread overview]
Message-ID: <514EE556.7020004@iki.fi> (raw)
In-Reply-To: <1363987779.8972.65.camel@schen9-DESK>

On 22.03.2013 23:29, Tim Chen wrote:
> We added glue code and config options to create crypto
> module that uses SSE/AVX/AVX2 optimized SHA512 x86_64 assembly routines.
> 
> Signed-off-by: Tim Chen <tim.c.chen@linux.intel.com>
> ---
>  arch/x86/crypto/Makefile            |   2 +
>  arch/x86/crypto/sha512_ssse3_glue.c | 276 ++++++++++++++++++++++++++++++++++++
>  crypto/Kconfig                      |  11 ++
>  3 files changed, 289 insertions(+)
>  create mode 100644 arch/x86/crypto/sha512_ssse3_glue.c
> 
> diff --git a/arch/x86/crypto/Makefile b/arch/x86/crypto/Makefile
> index 02a664a..7d12625 100644
> --- a/arch/x86/crypto/Makefile
> +++ b/arch/x86/crypto/Makefile
> @@ -28,6 +28,7 @@ obj-$(CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL) += ghash-clmulni-intel.o
>  obj-$(CONFIG_CRYPTO_CRC32C_INTEL) += crc32c-intel.o
>  obj-$(CONFIG_CRYPTO_SHA1_SSSE3) += sha1-ssse3.o
>  obj-$(CONFIG_CRYPTO_SHA256_SSSE3) += sha256-ssse3.o
> +obj-$(CONFIG_CRYPTO_SHA512_SSSE3) += sha512-ssse3.o
>  
>  aes-i586-y := aes-i586-asm_32.o aes_glue.o
>  twofish-i586-y := twofish-i586-asm_32.o twofish_glue.o
> @@ -54,3 +55,4 @@ sha1-ssse3-y := sha1_ssse3_asm.o sha1_ssse3_glue.o
>  crc32c-intel-y := crc32c-intel_glue.o
>  crc32c-intel-$(CONFIG_CRYPTO_CRC32C_X86_64) += crc32c-pcl-intel-asm_64.o
>  sha256-ssse3-y := sha256-ssse3-asm.o sha256-avx-asm.o sha256-avx2-asm.o sha256_ssse3_glue.o
> +sha512-ssse3-y := sha512-ssse3-asm.o sha512-avx-asm.o sha512-avx2-asm.o sha512_ssse3_glue.o
> diff --git a/arch/x86/crypto/sha512_ssse3_glue.c b/arch/x86/crypto/sha512_ssse3_glue.c
> new file mode 100644
> index 0000000..25a2e07
> --- /dev/null
> +++ b/arch/x86/crypto/sha512_ssse3_glue.c

...snip..

> +#include <linux/string.h>
> +
> +asmlinkage void sha512_transform_ssse3(const char *data, u64 *digest,
> +				     u64 rounds);
> +#ifdef CONFIG_AS_AVX
> +asmlinkage void sha512_transform_avx(const char *data, u64 *digest,
> +				     u64 rounds);
> +asmlinkage void sha512_transform_rorx(const char *data, u64 *digest,
> +				     u64 rounds);
> +#endif
> +

Is CONFIG_AS_AVX enough to ensure that rorx is supported by assembler?

You also have #ifdef CONFIG_AS_AVX / #endif missing in 'sha256-avx-asm.S', 'sha256-avx2-asm.S', 'sha512-avx-asm.S' and 'sha512-avx2-asm.S'.

-Jussi


  reply	other threads:[~2013-03-24 11:36 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1363961999.git.tim.c.chen@linux.intel.com>
2013-03-22 21:28 ` [PATCH 00/11] Optimize SHA256 and SHA512 for Intel x86_64 with SSSE3, AVX or AVX2 instructions Tim Chen
2013-03-22 21:28   ` Tim Chen
2013-03-22 21:29 ` [PATCH 01/11] Added macro to check for AVX2 feature Tim Chen
2013-03-22 21:29   ` Tim Chen
2013-03-23  0:21   ` H. Peter Anvin
2013-03-23  0:33     ` Tim Chen
2013-03-23  0:55       ` H. Peter Anvin
2013-03-22 21:29 ` [PATCH 02/11] Expose SHA256 generic routine to be callable externally Tim Chen
2013-03-22 21:29   ` Tim Chen
2013-03-22 21:29 ` [PATCH 03/11] Optimized sha256 x86_64 assembly routine using Supplemental SSE3 instructions Tim Chen
2013-03-22 21:29   ` Tim Chen
2013-03-24 12:26   ` Jussi Kivilinna
2013-03-24 12:26     ` Jussi Kivilinna
2013-03-22 21:29 ` [PATCH 04/11] Optimized sha256 x86_64 assembly routine with AVX instructions Tim Chen
2013-03-22 21:29   ` Tim Chen
2013-03-22 21:29 ` [PATCH 05/11] Optimized sha256 x86_64 routine using AVX2's RORX instructions Tim Chen
2013-03-22 21:29   ` Tim Chen
2013-03-22 21:29 ` [PATCH 06/11] Create module providing optimized SHA256 routines using SSSE3, AVX or AVX2 instructions Tim Chen
2013-03-22 21:29   ` Tim Chen
2013-03-24 11:30   ` Jussi Kivilinna
2013-03-24 11:30     ` Jussi Kivilinna
2013-03-24 21:52   ` Jussi Kivilinna
2013-03-24 21:52     ` Jussi Kivilinna
2013-03-25 20:40     ` Tim Chen
2013-03-25 20:40       ` Tim Chen
2013-03-22 21:29 ` [PATCH 07/11] Expose generic sha512 routine to be callable from other modules Tim Chen
2013-03-22 21:29   ` Tim Chen
2013-03-22 21:29 ` [PATCH 08/11] Optimized SHA512 x86_64 assembly routine using Supplemental SSE3 instructions Tim Chen
2013-03-22 21:29   ` Tim Chen
2013-03-22 21:29 ` [PATCH 09/11] Optimized SHA512 x86_64 assembly routine using AVX instructions Tim Chen
2013-03-22 21:29   ` Tim Chen
2013-03-22 21:29 ` [PATCH 10/11] Optimized SHA512 x86_64 assembly routine using AVX2 RORX instruction Tim Chen
2013-03-22 21:29   ` Tim Chen
2013-03-22 21:29 ` [PATCH 11/11] Create module providing optimized SHA512 routines using SSSE3, AVX or AVX2 instructions Tim Chen
2013-03-22 21:29   ` Tim Chen
2013-03-24 11:36   ` Jussi Kivilinna [this message]
2013-03-24 11:36     ` Jussi Kivilinna

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=514EE556.7020004@iki.fi \
    --to=jussi.kivilinna@iki.fi \
    --cc=davem@davemloft.net \
    --cc=david.m.cote@intel.com \
    --cc=herbert@gondor.apana.org.au \
    --cc=hpa@zytor.com \
    --cc=james.guilford@intel.com \
    --cc=kirk.s.yap@intel.com \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tim.c.chen@linux.intel.com \
    --cc=wajdi.k.feghali@intel.com \
    /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.