crypto: crc32 - add crc32 pclmulqdq implementation and wrappers for table implementation
authorAlexander Boyko <alexander_boyko@xyratex.com>
Thu, 10 Jan 2013 14:54:59 +0000 (18:54 +0400)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sat, 19 Jan 2013 23:16:45 +0000 (10:16 +1100)
commit78c37d191dd6899d8c219fee597a17d6e3c5d288
tree123ed7322996e4e4a6922791d6e3a674ffc05cba
parent5c22ba6619796da82ea0aa18c72caf4fe003a329
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>
arch/x86/crypto/Makefile
arch/x86/crypto/crc32-pclmul_asm.S [new file with mode: 0644]
arch/x86/crypto/crc32-pclmul_glue.c [new file with mode: 0644]
crypto/Kconfig
crypto/Makefile
crypto/crc32.c [new file with mode: 0644]