aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/Kconfig
diff options
context:
space:
mode:
authorAlexander Boyko <alexander_boyko@xyratex.com>2013-01-10 09:54:59 -0500
committerHerbert Xu <herbert@gondor.apana.org.au>2013-01-19 18:16:45 -0500
commit78c37d191dd6899d8c219fee597a17d6e3c5d288 (patch)
tree123ed7322996e4e4a6922791d6e3a674ffc05cba /crypto/Kconfig
parent5c22ba6619796da82ea0aa18c72caf4fe003a329 (diff)
crypto: crc32 - add crc32 pclmulqdq implementation and wrappers for table implementation
This patch adds crc32 algorithms to shash crypto api. One is wrapper to gerneric crc32_le function. Second is crc32 pclmulqdq implementation. It use hardware provided PCLMULQDQ instruction to accelerate the CRC32 disposal. This instruction present from Intel Westmere and AMD Bulldozer CPUs. For intel core i5 I got 450MB/s for table implementation and 2100MB/s for pclmulqdq implementation. Signed-off-by: Alexander Boyko <alexander_boyko@xyratex.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/Kconfig')
-rw-r--r--crypto/Kconfig21
1 files changed, 21 insertions, 0 deletions
diff --git a/crypto/Kconfig b/crypto/Kconfig
index 4641d95651d3..e8b51e068179 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -355,6 +355,27 @@ config CRYPTO_CRC32C_SPARC64
355 CRC32c CRC algorithm implemented using sparc64 crypto instructions, 355 CRC32c CRC algorithm implemented using sparc64 crypto instructions,
356 when available. 356 when available.
357 357
358config CRYPTO_CRC32
359 tristate "CRC32 CRC algorithm"
360 select CRYPTO_HASH
361 select CRC32
362 help
363 CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
364 Shash crypto api wrappers to crc32_le function.
365
366config CRYPTO_CRC32_PCLMUL
367 tristate "CRC32 PCLMULQDQ hardware acceleration"
368 depends on X86
369 select CRYPTO_HASH
370 select CRC32
371 help
372 From Intel Westmere and AMD Bulldozer processor with SSE4.2
373 and PCLMULQDQ supported, the processor will support
374 CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ
375 instruction. This option will create 'crc32-plcmul' module,
376 which will enable any routine to use the CRC-32-IEEE 802.3 checksum
377 and gain better performance as compared with the table implementation.
378
358config CRYPTO_GHASH 379config CRYPTO_GHASH
359 tristate "GHASH digest algorithm" 380 tristate "GHASH digest algorithm"
360 select CRYPTO_GF128MUL 381 select CRYPTO_GF128MUL