diff options
author | Tim Chen <tim.c.chen@linux.intel.com> | 2014-07-31 13:29:51 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2014-08-25 08:32:25 -0400 |
commit | 1e65b81a90df50bf450193065cc9073b706b8dda (patch) | |
tree | 6f55a2f93bbe0b9011e2bd0f13ea2167e9a3b2d3 /crypto/Kconfig | |
parent | 2ee507c472939db4b146d545352b8a7c79ef47f8 (diff) |
crypto: sha-mb - multibuffer crypto infrastructure
This patch introduces the multi-buffer crypto daemon which is responsible
for submitting crypto jobs in a work queue to the responsible multi-buffer
crypto algorithm. The idea of the multi-buffer algorihtm is to put
data streams from multiple jobs in a wide (AVX2) register and then
take advantage of SIMD instructions to do crypto computation on several
buffers simultaneously.
The multi-buffer crypto daemon is also responsbile for flushing the
remaining buffers to complete the computation if no new buffers arrive
for a while.
Signed-off-by: Tim Chen <tim.c.chen@linux.intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/Kconfig')
-rw-r--r-- | crypto/Kconfig | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/crypto/Kconfig b/crypto/Kconfig index 00b5906f57b7..86dc81f80bc5 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig | |||
@@ -158,6 +158,20 @@ config CRYPTO_CRYPTD | |||
158 | converts an arbitrary synchronous software crypto algorithm | 158 | converts an arbitrary synchronous software crypto algorithm |
159 | into an asynchronous algorithm that executes in a kernel thread. | 159 | into an asynchronous algorithm that executes in a kernel thread. |
160 | 160 | ||
161 | config CRYPTO_MCRYPTD | ||
162 | tristate "Software async multi-buffer crypto daemon" | ||
163 | select CRYPTO_BLKCIPHER | ||
164 | select CRYPTO_HASH | ||
165 | select CRYPTO_MANAGER | ||
166 | select CRYPTO_WORKQUEUE | ||
167 | help | ||
168 | This is a generic software asynchronous crypto daemon that | ||
169 | provides the kernel thread to assist multi-buffer crypto | ||
170 | algorithms for submitting jobs and flushing jobs in multi-buffer | ||
171 | crypto algorithms. Multi-buffer crypto algorithms are executed | ||
172 | in the context of this kernel thread and drivers can post | ||
173 | their crypto request asyncrhously and process by this daemon. | ||
174 | |||
161 | config CRYPTO_AUTHENC | 175 | config CRYPTO_AUTHENC |
162 | tristate "Authenc support" | 176 | tristate "Authenc support" |
163 | select CRYPTO_AEAD | 177 | select CRYPTO_AEAD |
@@ -559,6 +573,22 @@ config CRYPTO_SHA1_PPC | |||
559 | This is the powerpc hardware accelerated implementation of the | 573 | This is the powerpc hardware accelerated implementation of the |
560 | SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2). | 574 | SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2). |
561 | 575 | ||
576 | config CRYPTO_SHA1_MB | ||
577 | tristate "SHA1 digest algorithm (x86_64 Multi-Buffer, Experimental)" | ||
578 | depends on X86 && 64BIT | ||
579 | select CRYPTO_SHA1 | ||
580 | select CRYPTO_HASH | ||
581 | select CRYPTO_MCRYPTD | ||
582 | help | ||
583 | SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented | ||
584 | using multi-buffer technique. This algorithm computes on | ||
585 | multiple data lanes concurrently with SIMD instructions for | ||
586 | better throughput. It should not be enabled by default but | ||
587 | used when there is significant amount of work to keep the keep | ||
588 | the data lanes filled to get performance benefit. If the data | ||
589 | lanes remain unfilled, a flush operation will be initiated to | ||
590 | process the crypto jobs, adding a slight latency. | ||
591 | |||
562 | config CRYPTO_SHA256 | 592 | config CRYPTO_SHA256 |
563 | tristate "SHA224 and SHA256 digest algorithm" | 593 | tristate "SHA224 and SHA256 digest algorithm" |
564 | select CRYPTO_HASH | 594 | select CRYPTO_HASH |