[CRYPTO] twofish: x86-64 assembly version
authorJoachim Fritschi <jfritschi@freenet.de>
Tue, 20 Jun 2006 11:12:02 +0000 (21:12 +1000)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 21 Sep 2006 01:16:29 +0000 (11:16 +1000)
commiteaf44088ff467410dd15a033fef118888002ffe6
tree72b225b910342ae74e1b0915ceff61b4ead97883
parentb9f535ffe38f7eb61ac2219d32d97c377b69f70d
[CRYPTO] twofish: x86-64 assembly version

The patch passed the trycpt tests and automated filesystem tests.
This rewrite resulted in some nice perfomance increase over my last patch.

Short summary of the tcrypt benchmarks:

Twofish Assembler vs. Twofish C (256bit 8kb block CBC)
encrypt: -27% Cycles
decrypt: -23% Cycles

Twofish Assembler vs. AES Assembler (128bit 8kb block CBC)
encrypt: +18%  Cycles
decrypt: +15% Cycles

Twofish Assembler vs. AES Assembler (256bit 8kb block CBC)
encrypt: -9% Cycles
decrypt: -8% Cycles

Full Output:
http://homepages.tu-darmstadt.de/~fritschi/twofish/tcrypt-speed-twofish-c-x86_64.txt
http://homepages.tu-darmstadt.de/~fritschi/twofish/tcrypt-speed-twofish-asm-x86_64.txt
http://homepages.tu-darmstadt.de/~fritschi/twofish/tcrypt-speed-aes-asm-x86_64.txt

Here is another bonnie++ benchmark with encrypted filesystems. Most runs maxed
out the hd. It should give some idea what the module can do for encrypted filesystem
performance even though you can't see the full numbers.

http://homepages.tu-darmstadt.de/~fritschi/twofish/output_20060610_130806_x86_64.html

Signed-off-by: Joachim Fritschi <jfritschi@freenet.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
arch/x86_64/crypto/Makefile
arch/x86_64/crypto/twofish-x86_64-asm.S [new file with mode: 0644]
arch/x86_64/crypto/twofish.c [new file with mode: 0644]
crypto/Kconfig