crypto: aesni_intel - add more optimized XTS mode for x86-64
authorJussi Kivilinna <jussi.kivilinna@iki.fi>
Mon, 8 Apr 2013 18:51:16 +0000 (21:51 +0300)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 25 Apr 2013 13:01:53 +0000 (21:01 +0800)
commitc456a9cd1ac4eae9147ffd7ac4fb77ca0fa980c6
treef8e88f1e30b24e08104367fc6244dab88cd90d0e
parentb5c5b072dc2f35d45d3404b957e264a3e8e71069
crypto: aesni_intel - add more optimized XTS mode for x86-64

Add more optimized XTS code for aesni_intel in 64-bit mode, for smaller stack
usage and boost for speed.

tcrypt results, with Intel i5-2450M:
256-bit key
        enc     dec
16B     0.98x   0.99x
64B     0.64x   0.63x
256B    1.29x   1.32x
1024B   1.54x   1.58x
8192B   1.57x   1.60x

512-bit key
        enc     dec
16B     0.98x   0.99x
64B     0.60x   0.59x
256B    1.24x   1.25x
1024B   1.39x   1.42x
8192B   1.38x   1.42x

I chose not to optimize smaller than block size of 256 bytes, since XTS is
practically always used with data blocks of size 512 bytes. This is why
performance is reduced in tcrypt for 64 byte long blocks.

Cc: Huang Ying <ying.huang@intel.com>
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
arch/x86/crypto/aesni-intel_asm.S
arch/x86/crypto/aesni-intel_glue.c
crypto/Kconfig