[PATCH v5 1/7] crypto: Multi-buffer encryption infrastructure support

2016-09-26 Thread Megha Dey
see http://www.intel.com/content/www/us/en/communications/communications-ia-multi-buffer-paper.html Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Signed-off-by: Tim Chen --- crypto/Kconfig | 15 +++ crypto/mcryptd.c | 256

[PATCH v5 2/7] crypto: AES CBC multi-buffer data structures

2016-09-26 Thread Megha Dey
: Chandramouli Narayanan Signed-off-by: Megha Dey Signed-off-by: Tim Chen --- arch/x86/crypto/aes-cbc-mb/aes_cbc_mb_ctx.h| 97 + arch/x86/crypto/aes-cbc-mb/aes_cbc_mb_mgr.h| 132 arch/x86/crypto/aes-cbc-mb/mb_mgr_datastruct.S | 271 + arch/x86/crypto/aes

[PATCH v5 3/7] crypto: AES CBC multi-buffer scheduler

2016-09-26 Thread Megha Dey
s returns the oldest job in a completed state. Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Signed-off-by: Tim Chen --- arch/x86/crypto/aes-cbc-mb/aes_mb_mgr_init.c | 146 arch/x86/crypto/aes-cbc-mb/mb_mgr_inorder_x8_asm.S | 223 +++ arch/x

[PATCH v5 4/7] crypto: AES CBC by8 encryption

2016-09-26 Thread Megha Dey
From: Tim Chen This patch introduces the assembly routine to do a by8 AES CBC encryption in support of the AES CBC multi-buffer implementation. It encrypts 8 data streams of the same key size simultaneously. Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Signed-off-by: Tim

[PATCH v5 0/7] crypto: AES CBC multibuffer implementation

2016-09-26 Thread Megha Dey
f aes-cbc-mb module to properly free memory Megha Dey (1): crypto: Multi-buffer encryption infrastructure support Tim Chen (6): crypto: AES CBC multi-buffer data structures crypto: AES CBC multi-buffer scheduler crypto: AES CBC by8 encryption crypto: AES CBC multi-buffer glue code crypto

[PATCH v5 5/7] crypto: AES CBC multi-buffer glue code

2016-09-26 Thread Megha Dey
. Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Signed-off-by: Tim Chen --- arch/x86/crypto/Makefile| 1 + arch/x86/crypto/aes-cbc-mb/Makefile | 22 + arch/x86/crypto/aes-cbc-mb/aes_cbc_mb.c | 839 3 files changed, 862 insertions

[PATCH v5 7/7] crypto: AES CBC multi-buffer tcrypt

2016-09-26 Thread Megha Dey
compared with expected results. The test vectors are so chosen as to exercise the scatter-gather list to the maximum allowable limit within the framework. Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Signed-off-by: Tim Chen --- crypto/tcrypt.c | 257 ++- crypto

[PATCH v5 6/7] crypto: AES vectors for AES CBC multibuffer testing

2016-09-26 Thread Megha Dey
From: Tim Chen For more robust testing of AES CBC multibuffer support, additional test vectors have been added to the AES CBC encrypt/decrypt test case. Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Signed-off-by: Tim Chen --- crypto/testmgr.h | 1456

Re: sha1_mb broken

2016-09-28 Thread Megha Dey
Hi Stephan, Could you give me more info on how I could reproduce this issue on my end? Also was this issue there all along? Which is the first kernel version where you see this? Thanks, Megha On Mon, 2016-09-26 at 19:32 +0200, Stephan Mueller wrote: > Am Freitag, 26. August 2016, 03:15:06 CEST

Re: sha1_mb broken

2016-09-28 Thread Megha Dey
kernel, can you please use the lastest and let me know if you still see this issue? Also can you give more info on the test case? Does it issue single request or multiple requests? Thanks, Megha On Wed, 2016-09-28 at 10:58 -0700, Megha Dey wrote: > Hi Stephan, > > Could you give me more info

Re: FW: [PATCH V6 5/7] crypto: AES CBC multi-buffer glue code

2017-07-24 Thread Megha Dey
kernel.org; linux-ker...@vger.kernel.org > Subject: Re: [PATCH V6 5/7] crypto: AES CBC multi-buffer glue code > > On Tue, Jul 18, 2017 at 06:18:59PM -0700, Megha Dey wrote: > > > > > >> +/* > > > >> + * CRYPTO_ALG_ASYNC flag is passed to indicate we have an ablk >

[PATCH V7 0/7] crypto: AES CBC multibuffer implementation

2017-07-25 Thread Megha Dey
e cpu feature check to make sure SSE is supported 2. Fix up unloading of aes-cbc-mb module to properly free memory Megha Dey (7): crypto: Multi-buffer encryption infrastructure support crypto: AES CBC multi-buffer data structures crypto: AES CBC multi-buffer scheduler crypto: AES CB

[PATCH V7 1/7] crypto: Multi-buffer encryption infrastructure support

2017-07-25 Thread Megha Dey
multi-buffer encryption build support. For an introduction to the multi-buffer implementation, please see http://www.intel.com/content/www/us/en/communications/communications-ia-multi-buffer-paper.html Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Acked-by: Tim Chen --- crypto

[PATCH V7 2/7] crypto: AES CBC multi-buffer data structures

2017-07-25 Thread Megha Dey
Signed-off-by: Megha Dey Acked-by: Tim Chen --- arch/x86/crypto/aes-cbc-mb/aes_cbc_mb_ctx.h| 97 + arch/x86/crypto/aes-cbc-mb/aes_cbc_mb_mgr.h| 132 arch/x86/crypto/aes-cbc-mb/mb_mgr_datastruct.S | 271 + arch/x86/crypto/aes-cbc-mb/reg_sizes.S

[PATCH V7 3/7] crypto: AES CBC multi-buffer scheduler

2017-07-25 Thread Megha Dey
t job in a completed state. Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Acked-by: Tim Chen --- arch/x86/crypto/aes-cbc-mb/aes_mb_mgr_init.c | 146 arch/x86/crypto/aes-cbc-mb/mb_mgr_inorder_x8_asm.S | 223 +++ arch/x86/crypto/aes-cbc-mb/mb_mgr_oo

[PATCH V7 5/7] crypto: AES CBC multi-buffer glue code

2017-07-25 Thread Megha Dey
: Chandramouli Narayanan Signed-off-by: Megha Dey Acked-by: Tim Chen --- arch/x86/crypto/Makefile| 1 + arch/x86/crypto/aes-cbc-mb/Makefile | 22 + arch/x86/crypto/aes-cbc-mb/aes_cbc_mb.c | 720 3 files changed, 743 insertions(+) create mode 100644

[PATCH V7 4/7] crypto: AES CBC by8 encryption

2017-07-25 Thread Megha Dey
This patch introduces the assembly routine to do a by8 AES CBC encryption in support of the AES CBC multi-buffer implementation. It encrypts 8 data streams of the same key size simultaneously. Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Acked-by: Tim Chen --- arch/x86

Re: FW: [PATCH V6 5/7] crypto: AES CBC multi-buffer glue code

2017-07-25 Thread Megha Dey
On Tue, 2017-07-25 at 10:17 +0800, Herbert Xu wrote: > On Mon, Jul 24, 2017 at 06:09:56PM -0700, Megha Dey wrote: > > > > Under the skcipher interface, if both the outer and inner alg are async, > > there should not be any problem right? Currently I do not see any > > ex

[PATCH V7 7/7] crypto: AES CBC multi-buffer tcrypt

2017-07-25 Thread Megha Dey
expected results. The test vectors are so chosen as to exercise the scatter-gather list to the maximum allowable limit within the framework. Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Acked-by: Tim Chen --- crypto/tcrypt.c | 259 +++- crypto/testmgr.c | 707

[PATCH V7 6/7] crypto: AES vectors for AES CBC multibuffer testing

2017-07-25 Thread Megha Dey
For more robust testing of AES CBC multibuffer support, additional test vectors have been added to the AES CBC encrypt/decrypt test case. Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Acked-by: Tim Chen --- crypto/testmgr.h | 1456

Re: [PATCH V7 0/7] crypto: AES CBC multibuffer implementation

2017-07-31 Thread Megha Dey
On Tue, 2017-07-25 at 19:09 -0700, Megha Dey wrote: > In this patch series, we introduce AES CBC encryption that is parallelized on > x86_64 cpu with XMM registers. The multi-buffer technique encrypt 8 data > streams in parallel with SIMD instructions. Decryption is handled as in the &

[PATCH] crypto: x86/sha1 : Fix reads beyond the number of blocks passed

2017-08-01 Thread Megha Dey
ngth. It passes the tests written by Jan Stancek that revealed this problem: https://github.com/jstancek/sha1-avx2-crash Jan, can you verify this fix? Herbert, can you re-enable sha1-avx2 once Jan has checked it out and revert commit b82ce24426a4071da9529d726057e4e642948667 ? Signed-off-by: Megha

[Patch V2] crypto: x86/sha1 : Fix reads beyond the number of blocks passed

2017-08-01 Thread Megha Dey
Ilya Albrekht Signed-off-by: Megha Dey Reported-by: Jan Stancek --- arch/x86/crypto/sha1_avx2_x86_64_asm.S | 67 ++ 1 file changed, 36 insertions(+), 31 deletions(-) diff --git a/arch/x86/crypto/sha1_avx2_x86_64_asm.S b/arch/x86/crypto/sha1_avx2_x86_64_asm.S index 1cd

[Patch V3] crypto: x86/sha1 : Fix reads beyond the number of blocks passed

2017-08-02 Thread Megha Dey
ngth. It passes the tests written by Jan Stancek that revealed this problem: https://github.com/jstancek/sha1-avx2-crash I have re-enabled sha1-avx2 by reverting commit b82ce24426a4071da9529d726057e4e642948667 Originally-by: Ilya Albrekht Signed-off-by: Megha Dey Reported-by: Jan Stancek ---

Re: [Patch V3] crypto: x86/sha1 : Fix reads beyond the number of blocks passed

2017-08-02 Thread Megha Dey
On Wed, 2017-08-02 at 10:13 -0700, Megha Dey wrote: > It was reported that the sha1 AVX2 function(sha1_transform_avx2) is > reading ahead beyond its intended data, and causing a crash if the next > block is beyond page boundary: > http://marc.info/?l=linux-crypto-vger&m=149373371

[Patch V4] crypto: x86/sha1 : Fix reads beyond the number of blocks passed

2017-08-02 Thread Megha Dey
ngth. It passes the tests written by Jan Stancek that revealed this problem: https://github.com/jstancek/sha1-avx2-crash I have re-enabled sha1-avx2 by reverting commit b82ce24426a4071da9529d726057e4e642948667 Originally-by: Ilya Albrekht Tested-by: Jan Stancek Signed-off-by: Megha Dey Reporte

[PATCH 0/7] crypto: SHA256 multibuffer implementation

2016-03-24 Thread megha . dey
From: Megha Dey In this patch series, we introduce the multi-buffer crypto algorithm on x86_64 and apply it to SHA256 hash computation. The multi-buffer technique takes advantage of the 8 data lanes in the AVX2 registers and allows computation to be performed on data from multiple jobs in

[PATCH 6/7] crypto: sha256-mb - Crypto computation (x8 AVX2)

2016-03-24 Thread megha . dey
From: Megha Dey This patch introduces the assembly routines to do SHA256 computation on buffers belonging to several jobs at once. The assembly routines are optimized with AVX2 instructions that have 8 data lanes and using AVX2 registers. Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu

[PATCH 3/7] crypto: sha256-mb - Enable multibuffer support

2016-03-24 Thread megha . dey
From: Megha Dey Add the config CRYPTO_SHA256_MB which will enable the computation using the SHA256 multi-buffer algorithm. Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu Reviewed-by: Tim Chen --- crypto/Kconfig | 16 1 file changed, 16 insertions(+) diff --git a/crypto

[PATCH 7/7] crypto: tcrypt - Add speed tests for SHA multibuffer algorithms

2016-03-24 Thread megha . dey
From: Megha Dey The existing test suite to calculate the speed of the SHA algorithms assumes serial (single buffer)) computation of data. With the SHA multibuffer algorithms, we work on 8 lanes of data in parallel. Hence, the need to introduce a new test suite to calculate the speed for these

[PATCH 0/6] crypto: SHA512 multibuffer implementation

2016-03-24 Thread megha . dey
From: Megha Dey In this patch series, we introduce the multi-buffer crypto algorithm on x86_64 and apply it to SHA512 hash computation. The multi-buffer technique takes advantage of the 8 data lanes in the AVX2 registers and allows computation to be performed on data from multiple jobs in

[PATCH 6/6] crypto: tcrypt - Add new mode for sha512_mb

2016-03-24 Thread megha . dey
From: Megha Dey Add a new mode to calculate the speed of the sha512_mb algorithm Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu Reviewed-by: Tim Chen --- crypto/tcrypt.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c index a2172e8..480bb75

[PATCH 1/6] crypto: sha512-mb - SHA512 multibuffer job manager and glue code

2016-03-24 Thread megha . dey
From: Megha Dey This patch introduces the multi-buffer job manager which is responsible for submitting scatter-gather buffers from several SHA512 jobs to the multi-buffer algorithm. It also contains the flush routine that's called by the crypto daemon to complete the job when no new jobs a

[PATCH 4/6] crypto: sha512-mb - Algorithm data structures

2016-03-24 Thread megha . dey
From: Megha Dey This patch introduces the data structures and prototypes of functions needed for computing SHA512 hash using multi-buffer. Included are the structures of the multi-buffer SHA512 job, job scheduler in C and x86 assembly. Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu Reviewed

[PATCH 5/6] crypto: sha512-mb - Crypto computation (x4 AVX2)

2016-03-24 Thread megha . dey
From: Megha Dey This patch introduces the assembly routines to do SHA512 computation on buffers belonging to several jobs at once. The assembly routines are optimized with AVX2 instructions that have 4 data lanes and using AVX2 registers. Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu

[PATCH 2/7] crypto: sha256-mb - SHA256 multibuffer job manager and glue code

2016-03-24 Thread megha . dey
From: Megha Dey This patch introduces the multi-buffer job manager which is responsible for submitting scatter-gather buffers from several SHA256 jobs to the multi-buffer algorithm. It also contains the flush routine to that's called by the crypto daemon to complete the job when no new

[PATCH 2/6] crypto: sha512-mb - Enable SHA512 multibuffer support

2016-03-24 Thread megha . dey
From: Megha Dey Add the config CRYPTO_SHA512_MB which will enable the computation using the SHA512 multi-buffer algorithm. Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu Reviewed-by: Tim Chen --- crypto/Kconfig | 16 1 file changed, 16 insertions(+) diff --git a/crypto

[PATCH 3/6] crypto: sha512-mb - submit/flush routines for AVX2

2016-03-24 Thread megha . dey
From: Megha Dey This patch introduces the routines used to submit and flush buffers belonging to SHA512 crypto jobs to the SHA512 multibuffer algorithm. It is implemented mostly in assembly optimized with AVX2 instructions. Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu Reviewed-by: Tim

[PATCH 5/7] crypto: sha256-mb - Algorithm data structures

2016-03-24 Thread megha . dey
From: Megha Dey This patch introduces the data structures and prototypes of functions needed for computing SHA256 hash using multi-buffer. Included are the structures of the multi-buffer SHA256 job, job scheduler in C and x86 assembly. Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu Reviewed

[PATCH 4/7] crypto: sha256-mb - submit/flush routines for AVX2

2016-03-24 Thread megha . dey
From: Megha Dey This patch introduces the routines used to submit and flush buffers belonging to SHA256 crypto jobs to the SHA256 multibuffer algorithm. It is implemented mostly in assembly optimized with AVX2 instructions. Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu Reviewed-by: Tim

[PATCH 1/7] crypto: sha1-mb - rename sha-mb to sha1-mb

2016-03-24 Thread megha . dey
From: Megha Dey Until now, there was only support for the SHA1 multibuffer algorithm. Hence, there was just one sha-mb folder. Now, with the introduction of the SHA256 multi-buffer algorithm , it is logical to name the existing folder as sha1-mb. Signed-off-by: Megha Dey Reviewed-by: Fenghua

SHA1-MB algorithm broken on latest kernel

2016-05-12 Thread Megha Dey
Hi, When booting latest kernel with the CONFIG_CRYPTO_SHA1_MB enabled, I observe a panic. After having a quick look, on reverting the following patches, I am able to complete the booting process. aec4d0e301f17bb143341c82cc44685b8af0b945 8691ccd764f9ecc69a6812dfe76214c86ac9ba06 68874ac3304ade7ed

Re: SHA1-MB algorithm broken on latest kernel

2016-05-13 Thread Megha Dey
On Fri, 2016-05-13 at 07:51 +0200, Ingo Molnar wrote: > * Herbert Xu wrote: > > > On Thu, May 12, 2016 at 04:31:06PM -0700, Megha Dey wrote: > > > Hi, > > > > > > When booting latest kernel with the CONFIG_CRYPTO_SHA1_MB enabled, I > > > observe

Re: SHA1-MB algorithm broken on latest kernel

2016-05-16 Thread Megha Dey
On Mon, 2016-05-16 at 09:44 -0500, Josh Poimboeuf wrote: > On Fri, May 13, 2016 at 10:32:26AM -0700, Megha Dey wrote: > > On Fri, 2016-05-13 at 07:51 +0200, Ingo Molnar wrote: > > > * Herbert Xu wrote: > > > > > > > On Thu, May 12, 2016 at 04:31:06

Re: [PATCH] crypto/sha1-mb: make sha1_x8_avx2() conform to C function ABI

2016-05-16 Thread Megha Dey
On Mon, 2016-05-16 at 15:16 -0500, Josh Poimboeuf wrote: > On Mon, May 16, 2016 at 11:31:12AM -0700, Megha Dey wrote: > > On Mon, 2016-05-16 at 09:44 -0500, Josh Poimboeuf wrote: > > > On Fri, May 13, 2016 at 10:32:26AM -0700, Megha Dey wrote: > > > > On Fri, 2016-05-

Re: [PATCH] crypto/sha1-mb: make sha1_x8_avx2() conform to C function ABI

2016-05-16 Thread Megha Dey
On Mon, 2016-05-16 at 16:46 -0500, Josh Poimboeuf wrote: > On Mon, May 16, 2016 at 02:39:06PM -0700, Megha Dey wrote: > > On Mon, 2016-05-16 at 15:16 -0500, Josh Poimboeuf wrote: > > > On Mon, May 16, 2016 at 11:31:12AM -0700, Megha Dey wrote: > > > > On Mon, 2

[PATCH 1/7] crypto : stylistic cleanup in sha1-mb

2016-05-19 Thread Megha Dey
From: Megha Dey Currently there are several checkpatch warnings in the sha1_mb.c file: 'WARNING: line over 80 characters' in the sha1_mb.c file. Also, the syntax of some multi-line comments are not correct. This patch fixes these issues. Signed-off-by: Megha Dey --- arch/x86/cry

[PATCH 2/7] crypto : async implementation for sha1-mb

2016-05-19 Thread Megha Dey
From: Megha Dey Herbert wants the sha1-mb algorithm to have an async implementation: https://lkml.org/lkml/2016/4/5/286. Currently, sha1-mb uses an async interface for the outer algorithm and a sync interface for the inner algorithm. This patch introduces a async interface for even the inner

Re: [PATCH 1/7] crypto : stylistic cleanup in sha1-mb

2016-05-31 Thread Megha Dey
On Tue, 2016-05-31 at 16:13 +0800, Herbert Xu wrote: > On Thu, May 19, 2016 at 05:43:04PM -0700, Megha Dey wrote: > > From: Megha Dey > > > > Currently there are several checkpatch warnings in the sha1_mb.c file: > > 'WARNING: line over 80 characters' in the

[PATCH 0/2] async implementation for sha1-mb

2016-05-31 Thread Megha Dey
From: Megha Dey Currently, sha1-mb uses an async interface for the outer algorithm and a sync interface for the inner algorithm. Herbert wants the sha1-mb algorithm to have an async implementation: https://lkml.org/lkml/2016/4/5/286. This patch introduces a async interface for even the inner

[PATCH 2/2] crypto : async implementation for sha1-mb

2016-05-31 Thread Megha Dey
From: Megha Dey Herbert wants the sha1-mb algorithm to have an async implementation: https://lkml.org/lkml/2016/4/5/286. Currently, sha1-mb uses an async interface for the outer algorithm and a sync interface for the inner algorithm. This patch introduces a async interface for even the inner

[PATCH 1/2] crypto : stylistic cleanup in sha1-mb

2016-05-31 Thread Megha Dey
From: Megha Dey Currently there are several checkpatch warnings in the sha1_mb.c file: 'WARNING: line over 80 characters' in the sha1_mb.c file. Also, the syntax of some multi-line comments are not correct. This patch fixes these issues. Signed-off-by: Megha Dey --- arch/x86/cry

Re: [PATCH 2/2] crypto : async implementation for sha1-mb

2016-06-02 Thread Megha Dey
On Thu, 2016-06-02 at 18:33 +0800, Herbert Xu wrote: > On Tue, May 31, 2016 at 02:42:21PM -0700, Megha Dey wrote: > > > > @@ -416,8 +421,8 @@ static void mcryptd_hash_finup(struct > > crypto_async_request *req_async, int err) > > > > if (unlikely(err == -E

[PATCH V2 0/2] Implementation of an async interface for sha1-mb

2016-06-02 Thread Megha Dey
From: Megha Dey Currently, sha1-mb uses an async interface for the outer algorithm and a sync interface for the inner algorithm. Herbert wants the sha1-mb algorithm to have an async implementation: https://lkml.org/lkml/2016/4/5/286. This patch introduces a async interface for even the inner

[PATCH V2 1/2] crypto: sha1-mb - stylistic cleanup

2016-06-02 Thread Megha Dey
From: Megha Dey Currently there are several checkpatch warnings in the sha1_mb.c file: 'WARNING: line over 80 characters' in the sha1_mb.c file. Also, the syntax of some multi-line comments are not correct. This patch fixes these issues. Signed-off-by: Megha Dey Signed-off-by:

[PATCH V2 2/2] crypto : async implementation for sha1-mb

2016-06-02 Thread Megha Dey
From: Megha Dey Herbert wants the sha1-mb algorithm to have an async implementation: https://lkml.org/lkml/2016/4/5/286. Currently, sha1-mb uses an async interface for the outer algorithm and a sync interface for the inner algorithm. This patch introduces a async interface for even the inner

[PATCH] crypto : async implementation for sha1-mb

2016-06-07 Thread Megha Dey
From: Megha Dey Herbert wants the sha1-mb algorithm to have an async implementation: https://lkml.org/lkml/2016/4/5/286. Currently, sha1-mb uses an async interface for the outer algorithm and a sync interface for the inner algorithm. This patch introduces a async interface for even the inner

[PATCH] crypto : async implementation for sha1-mb

2016-06-17 Thread Megha Dey
From: Megha Dey Herbert wants the sha1-mb algorithm to have an async implementation: https://lkml.org/lkml/2016/4/5/286. Currently, sha1-mb uses an async interface for the outer algorithm and a sync interface for the inner algorithm. This patch introduces a async interface for even the inner

[PATCH] crypto : async implementation for sha1-mb

2016-06-20 Thread Megha Dey
From: Megha Dey Herbert wants the sha1-mb algorithm to have an async implementation: https://lkml.org/lkml/2016/4/5/286. Currently, sha1-mb uses an async interface for the outer algorithm and a sync interface for the inner algorithm. This patch introduces a async interface for even the inner

[PATCH] crypto : async implementation for sha1-mb

2016-06-21 Thread Megha Dey
From: Megha Dey Herbert wants the sha1-mb algorithm to have an async implementation: https://lkml.org/lkml/2016/4/5/286. Currently, sha1-mb uses an async interface for the outer algorithm and a sync interface for the inner algorithm. This patch introduces a async interface for even the inner

[PATCH 0/7] crypto: SHA256 multibuffer implementation

2016-06-23 Thread Megha Dey
From: Megha Dey In this patch series, we introduce the multi-buffer crypto algorithm on x86_64 and apply it to SHA256 hash computation. The multi-buffer technique takes advantage of the 8 data lanes in the AVX2 registers and allows computation to be performed on data from multiple jobs in

[PATCH 6/7] crypto: tcrypt - Add speed tests for SHA multibuffer algorithms

2016-06-23 Thread Megha Dey
From: Megha Dey The existing test suite to calculate the speed of the SHA algorithms assumes serial (single buffer)) computation of data. With the SHA multibuffer algorithms, we work on 8 lanes of data in parallel. Hence, the need to introduce a new test suite to calculate the speed for these

[PATCH 3/7] crypto: sha256-mb - submit/flush routines for AVX2

2016-06-23 Thread Megha Dey
This patch introduces the routines used to submit and flush buffers belonging to SHA256 crypto jobs to the SHA256 multibuffer algorithm. It is implemented mostly in assembly optimized with AVX2 instructions. Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu Reviewed-by: Tim Chen --- .../crypto

[PATCH 4/7] crypto: sha256-mb - Algorithm data structures

2016-06-23 Thread Megha Dey
This patch introduces the data structures and prototypes of functions needed for computing SHA256 hash using multi-buffer. Included are the structures of the multi-buffer SHA256 job, job scheduler in C and x86 assembly. Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu Reviewed-by: Tim Chen

[PATCH 7/7] crypto: sha1-mb - rename sha-mb to sha1-mb

2016-06-23 Thread Megha Dey
From: Megha Dey Until now, there was only support for the SHA1 multibuffer algorithm. Hence, there was just one sha-mb folder. Now, with the introduction of the SHA256 multi-buffer algorithm , it is logical to name the existing folder as sha1-mb. Signed-off-by: Megha Dey Reviewed-by: Fenghua

[PATCH 5/7] crypto: sha256-mb - Crypto computation (x8 AVX2)

2016-06-23 Thread Megha Dey
This patch introduces the assembly routines to do SHA256 computation on buffers belonging to several jobs at once. The assembly routines are optimized with AVX2 instructions that have 8 data lanes and using AVX2 registers. Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu Reviewed-by: Tim Chen

[PATCH 2/7] crypto: sha256-mb - Enable multibuffer support

2016-06-23 Thread Megha Dey
Add the config CRYPTO_SHA256_MB which will enable the computation using the SHA256 multi-buffer algorithm. Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu Reviewed-by: Tim Chen --- crypto/Kconfig | 16 1 file changed, 16 insertions(+) diff --git a/crypto/Kconfig b/crypto

[PATCH 1/7] crypto: sha256-mb - SHA256 multibuffer job manager and glue code

2016-06-23 Thread Megha Dey
e the deadline of maximum latency of a SHA256 crypto job. The SHA256 multi-buffer crypto algorithm is defined and initialized in this patch. Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu Reviewed-by: Tim Chen --- arch/x86/crypto/Makefile |1 + arch/x86/crypto/sha256-mb/Mak

[PATCH 5/6] crypto: sha512-mb - Crypto computation (x4 AVX2)

2016-06-27 Thread Megha Dey
From: Megha Dey This patch introduces the assembly routines to do SHA512 computation on buffers belonging to several jobs at once. The assembly routines are optimized with AVX2 instructions that have 4 data lanes and using AVX2 registers. Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu

[PATCH 0/6] crypto: SHA512 multibuffer implementation

2016-06-27 Thread Megha Dey
From: Megha Dey In this patch series, we introduce the multi-buffer crypto algorithm on x86_64 and apply it to SHA512 hash computation. The multi-buffer technique takes advantage of the 8 data lanes in the AVX2 registers and allows computation to be performed on data from multiple jobs in

[PATCH 2/6] crypto: sha512-mb - Enable SHA512 multibuffer support

2016-06-27 Thread Megha Dey
From: Megha Dey Add the config CRYPTO_SHA512_MB which will enable the computation using the SHA512 multi-buffer algorithm. Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu Reviewed-by: Tim Chen --- crypto/Kconfig | 16 1 file changed, 16 insertions(+) diff --git a/crypto

[PATCH 1/6] crypto: sha512-mb - SHA512 multibuffer job manager and glue code

2016-06-27 Thread Megha Dey
From: Megha Dey This patch introduces the multi-buffer job manager which is responsible for submitting scatter-gather buffers from several SHA512 jobs to the multi-buffer algorithm. It also contains the flush routine that's called by the crypto daemon to complete the job when no new jobs a

[PATCH 4/6] crypto: sha512-mb - Algorithm data structures

2016-06-27 Thread Megha Dey
From: Megha Dey This patch introduces the data structures and prototypes of functions needed for computing SHA512 hash using multi-buffer. Included are the structures of the multi-buffer SHA512 job, job scheduler in C and x86 assembly. Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu Reviewed

[PATCH 6/6] crypto: tcrypt - Add new mode for sha512_mb

2016-06-27 Thread Megha Dey
From: Megha Dey Add a new mode to calculate the speed of the sha512_mb algorithm Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu Reviewed-by: Tim Chen --- crypto/tcrypt.c | 4 1 file changed, 4 insertions(+) diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c index 6ef7815..158c164 100644

[PATCH 3/6] crypto: sha512-mb - submit/flush routines for AVX2

2016-06-27 Thread Megha Dey
From: Megha Dey This patch introduces the routines used to submit and flush buffers belonging to SHA512 crypto jobs to the SHA512 multibuffer algorithm. It is implemented mostly in assembly optimized with AVX2 instructions. Signed-off-by: Megha Dey Reviewed-by: Fenghua Yu Reviewed-by: Tim

Re: [PATCH v2] crypto: tcrypt - Fix memory leaks/crashes in multibuffer hash speed test

2016-06-29 Thread Megha Dey
I tested the latest cryptodev tree on my haswell machine and this is what I see: [ 40.402834] modprobe tcrypt mode=422 [ 40.403105] testing speed of multibuffer sha1 (sha1_mb) [ 40.403108] test 0 ( 16 byte blocks, 16 bytes per update, 1 updates): 32271 cycles/operation, 252 cycles/by

Re: crypto: tcrypt - Do not bail on EINPROGRESS in multibuffer hash test

2016-06-30 Thread Megha Dey
On Thu, 2016-06-30 at 11:00 +0800, Herbert Xu wrote: > On Wed, Jun 29, 2016 at 10:45:56AM -0700, Megha Dey wrote: > > I tested the latest cryptodev tree on my haswell machine and this is > > what I see: > > [ 40.402834] modprobe tcrypt mode=422 > > [ 40.403105] t

[PATCH] crypto : sha1-mb : Add missing args_digest offset

2016-01-25 Thread Megha Dey
From: Megha Dey The _args_digest is defined as _args+_digest, both of which are the first members of 2 separate structures, effectively yielding _args_digest to have a value of zero. Thus, no errors have spawned yet due to this. To ensure sanity, adding the missing _args_digest offset to the

[Patch V5 0/7] crypto: AES CBC multibuffer implementation

2017-04-20 Thread Megha Dey
v2 1. Update cpu feature check to make sure SSE is supported 2. Fix up unloading of aes-cbc-mb module to properly free memory Megha Dey (7): crypto: Multi-buffer encryption infrastructure support crypto: AES CBC multi-buffer data structures crypto: AES CBC multi-buffer scheduler crypto: AES CB

[Patch V5 4/7] crypto: AES CBC by8 encryption

2017-04-20 Thread Megha Dey
This patch introduces the assembly routine to do a by8 AES CBC encryption in support of the AES CBC multi-buffer implementation. It encrypts 8 data streams of the same key size simultaneously. Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Acked-by: Tim Chen --- arch/x86

[Patch V5 7/7] crypto: AES CBC multi-buffer tcrypt

2017-04-20 Thread Megha Dey
expected results. The test vectors are so chosen as to exercise the scatter-gather list to the maximum allowable limit within the framework. Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Acked-by: Tim Chen --- crypto/tcrypt.c | 257 +++- crypto/testmgr.c | 707

[Patch V5 6/7] crypto: AES vectors for AES CBC multibuffer testing

2017-04-20 Thread Megha Dey
For more robust testing of AES CBC multibuffer support, additional test vectors have been added to the AES CBC encrypt/decrypt test case. Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Acked-by: Tim Chen --- crypto/testmgr.h | 1456

[Patch V5 5/7] crypto: AES CBC multi-buffer glue code

2017-04-20 Thread Megha Dey
: Chandramouli Narayanan Signed-off-by: Megha Dey Acked-by: Tim Chen --- arch/x86/crypto/Makefile| 1 + arch/x86/crypto/aes-cbc-mb/Makefile | 22 + arch/x86/crypto/aes-cbc-mb/aes_cbc_mb.c | 737 3 files changed, 760 insertions(+) create mode 100644

[Patch V5 3/7] crypto: AES CBC multi-buffer scheduler

2017-04-20 Thread Megha Dey
t job in a completed state. Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Acked-by: Tim Chen --- arch/x86/crypto/aes-cbc-mb/aes_mb_mgr_init.c | 146 arch/x86/crypto/aes-cbc-mb/mb_mgr_inorder_x8_asm.S | 223 +++ arch/x86/crypto/aes-cbc-mb/mb_mgr_oo

[Patch V5 2/7] crypto: AES CBC multi-buffer data structures

2017-04-20 Thread Megha Dey
Signed-off-by: Megha Dey Acked-by: Tim Chen --- arch/x86/crypto/aes-cbc-mb/aes_cbc_mb_ctx.h| 97 + arch/x86/crypto/aes-cbc-mb/aes_cbc_mb_mgr.h| 132 arch/x86/crypto/aes-cbc-mb/mb_mgr_datastruct.S | 271 + arch/x86/crypto/aes-cbc-mb/reg_sizes.S

[Patch V5 1/7] crypto: Multi-buffer encryption infrastructure support

2017-04-20 Thread Megha Dey
-buffer encryption build support. For an introduction to the multi-buffer implementation, please see http://www.intel.com/content/www/us/en/communications/communications-ia-multi-buffer-paper.html Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Acked-by: Tim Chen --- crypto

Re: [Patch V5 1/7] crypto: Multi-buffer encryption infrastructure support

2017-06-08 Thread Megha Dey
On Mon, 2017-04-24 at 17:00 +0800, Herbert Xu wrote: > On Thu, Apr 20, 2017 at 01:50:34PM -0700, Megha Dey wrote: > > > > +static int simd_skcipher_decrypt_mb(struct skcipher_request *req) > > +{ > > + struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); > >

[PATCH V6 0/7] crypto: AES CBC multibuffer implementation

2017-06-27 Thread Megha Dey
perly free memory Megha Dey (7): crypto: Multi-buffer encryption infrastructure support crypto: AES CBC multi-buffer data structures crypto: AES CBC multi-buffer scheduler crypto: AES CBC by8 encryption crypto: AES CBC multi-buffer glue code crypto: AES vectors for AES CBC multib

[PATCH V6 1/7] crypto: Multi-buffer encryption infrastructure support

2017-06-27 Thread Megha Dey
multi-buffer encryption build support. For an introduction to the multi-buffer implementation, please see http://www.intel.com/content/www/us/en/communications/communications-ia-multi-buffer-paper.html Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Acked-by: Tim Chen --- crypto

[PATCH V6 4/7] crypto: AES CBC by8 encryption

2017-06-27 Thread Megha Dey
This patch introduces the assembly routine to do a by8 AES CBC encryption in support of the AES CBC multi-buffer implementation. It encrypts 8 data streams of the same key size simultaneously. Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Acked-by: Tim Chen --- arch/x86

[PATCH V6 5/7] crypto: AES CBC multi-buffer glue code

2017-06-27 Thread Megha Dey
: Chandramouli Narayanan Signed-off-by: Megha Dey Acked-by: Tim Chen --- arch/x86/crypto/Makefile| 1 + arch/x86/crypto/aes-cbc-mb/Makefile | 22 + arch/x86/crypto/aes-cbc-mb/aes_cbc_mb.c | 727 3 files changed, 750 insertions(+) create mode 100644

[PATCH V6 2/7] crypto: AES CBC multi-buffer data structures

2017-06-27 Thread Megha Dey
Signed-off-by: Megha Dey Acked-by: Tim Chen --- arch/x86/crypto/aes-cbc-mb/aes_cbc_mb_ctx.h| 97 + arch/x86/crypto/aes-cbc-mb/aes_cbc_mb_mgr.h| 132 arch/x86/crypto/aes-cbc-mb/mb_mgr_datastruct.S | 271 + arch/x86/crypto/aes-cbc-mb/reg_sizes.S

[PATCH V6 7/7] crypto: AES CBC multi-buffer tcrypt

2017-06-27 Thread Megha Dey
expected results. The test vectors are so chosen as to exercise the scatter-gather list to the maximum allowable limit within the framework. Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Acked-by: Tim Chen --- crypto/tcrypt.c | 259 +++- crypto/testmgr.c | 707

[PATCH V6 6/7] crypto: AES vectors for AES CBC multibuffer testing

2017-06-27 Thread Megha Dey
For more robust testing of AES CBC multibuffer support, additional test vectors have been added to the AES CBC encrypt/decrypt test case. Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Acked-by: Tim Chen --- crypto/testmgr.h | 1456

[PATCH V6 3/7] crypto: AES CBC multi-buffer scheduler

2017-06-27 Thread Megha Dey
t job in a completed state. Originally-by: Chandramouli Narayanan Signed-off-by: Megha Dey Acked-by: Tim Chen --- arch/x86/crypto/aes-cbc-mb/aes_mb_mgr_init.c | 146 arch/x86/crypto/aes-cbc-mb/mb_mgr_inorder_x8_asm.S | 223 +++ arch/x86/crypto/aes-cbc-mb/mb_mgr_oo

Re: [PATCH V6 0/7] crypto: AES CBC multibuffer implementation

2017-07-17 Thread Megha Dey
Hi Herbert, Do you want any other changes to be made to this patchset? Thanks, Megha On Tue, 2017-06-27 at 17:26 -0700, Megha Dey wrote: > In this patch series, we introduce AES CBC encryption that is parallelized on > x86_64 cpu with XMM registers. The multi-buffer technique encrypt

Re: [PATCH V6 5/7] crypto: AES CBC multi-buffer glue code

2017-07-18 Thread Megha Dey
On Tue, 2017-07-18 at 17:52 -0700, Tim Chen wrote: > On 07/17/2017 10:41 PM, Herbert Xu wrote: > > On Tue, Jun 27, 2017 at 05:26:13PM -0700, Megha Dey wrote: > >> > >> +static void completion_callback(struct mcryptd_skcipher_request_ctx *rctx, > >> +

Re: [PATCH V7 5/7] crypto: AES CBC multi-buffer glue code

2018-01-09 Thread Megha Dey
On Thu, 2017-08-03 at 13:27 +0800, Herbert Xu wrote: > On Tue, Jul 25, 2017 at 07:09:58PM -0700, Megha Dey wrote: > > > > +/* notify the caller of progress ; request still stays in queue */ > > + > > +static void notify_callback(struct mcryptd

[PATCH V8 0/5] crypto: AES CBC multibuffer implementation

2018-01-09 Thread Megha Dey
. Use ablkcipher_walk helpers to walk the scatter gather list and eliminated needs to modify blkcipher_walk for multibuffer cipher v2 1. Update cpu feature check to make sure SSE is supported 2. Fix up unloading of aes-cbc-mb module to properly free memory Megha Dey (5): crypto: Multi-buffer encry

[PATCH V8 2/5] crypto: AES CBC multi-buffer data structures

2018-01-09 Thread Megha Dey
Signed-off-by: Megha Dey Acked-by: Tim Chen --- arch/x86/crypto/aes-cbc-mb/aes_cbc_mb_ctx.h| 97 + arch/x86/crypto/aes-cbc-mb/aes_cbc_mb_mgr.h| 132 arch/x86/crypto/aes-cbc-mb/mb_mgr_datastruct.S | 271 + arch/x86/crypto/aes-cbc-mb/reg_sizes.S

  1   2   >