Jussi Kivilinna
c456a9cd1a
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>
2013-04-25 21:01:53 +08:00
..
asymmetric_keys
X.509: Convert some printk calls to pr_devel
2012-10-10 20:06:38 +10:30
async_tx
842.c
crypto: 842 - remove .cra_list initialization
2012-09-07 04:17:06 +08:00
ablkcipher.c
crypto: user - fix info leaks in report API
2013-02-19 20:27:03 +08:00
aead.c
crypto: user - fix info leaks in report API
2013-02-19 20:27:03 +08:00
aes_generic.c
crypto: cleanup - remove unneeded crypto_alg.cra_list initializations
2012-08-01 17:47:27 +08:00
af_alg.c
ahash.c
crypto: user - fix info leaks in report API
2013-02-19 20:27:03 +08:00
algapi.c
crypto: use ERR_CAST
2013-02-04 21:16:53 +08:00
algboss.c
algif_hash.c
algif_skcipher.c
ansi_cprng.c
crypto: ansi_cprng - use crypto_[un]register_algs
2012-08-01 17:47:25 +08:00
anubis.c
crypto: cleanup - remove unneeded crypto_alg.cra_list initializations
2012-08-01 17:47:27 +08:00
api.c
arc4.c
authenc.c
crypto: use ERR_CAST
2013-02-04 21:16:53 +08:00
authencesn.c
crypto: use ERR_CAST
2013-02-04 21:16:53 +08:00
blkcipher.c
crypto: user - fix info leaks in report API
2013-02-19 20:27:03 +08:00
blowfish_common.c
blowfish_generic.c
crypto: cleanup - remove unneeded crypto_alg.cra_list initializations
2012-08-01 17:47:27 +08:00
camellia_generic.c
crypto: cleanup - remove unneeded crypto_alg.cra_list initializations
2012-08-01 17:47:27 +08:00
cast5_generic.c
crypto: cast5/cast6 - move lookup tables to shared module
2012-12-06 17:16:26 +08:00
cast6_generic.c
crypto: cast5/cast6 - move lookup tables to shared module
2012-12-06 17:16:26 +08:00
cast_common.c
crypto: cast5/cast6 - move lookup tables to shared module
2012-12-06 17:16:26 +08:00
cbc.c
ccm.c
crypto: use ERR_CAST
2013-02-04 21:16:53 +08:00
chainiv.c
crypto: use ERR_CAST
2013-02-04 21:16:53 +08:00
cipher.c
cmac.c
crypto: add CMAC support to CryptoAPI
2013-04-25 21:01:47 +08:00
compress.c
crc32.c
crypto: crc32 - add crc32 pclmulqdq implementation and wrappers for table implementation
2013-01-20 10:16:45 +11:00
crc32c.c
cryptd.c
crypto: cryptd - disable softirqs in cryptd_queue_worker to prevent data corruption
2012-10-24 21:21:18 +08:00
crypto_null.c
crypto: crypto_null - use crypto_[un]register_algs
2012-08-01 17:47:24 +08:00
crypto_user.c
crypto: user - constify netlink dispatch table
2013-03-10 16:46:43 +08:00
crypto_wq.c
ctr.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2013-02-25 15:56:15 -08:00
cts.c
crypto: use ERR_CAST
2013-02-04 21:16:53 +08:00
deflate.c
crypto: cleanup - remove unneeded crypto_alg.cra_list initializations
2012-08-01 17:47:27 +08:00
des_generic.c
crypto: des - use crypto_[un]register_algs
2012-08-01 17:47:24 +08:00
ecb.c
eseqiv.c
fcrypt.c
crypto: cleanup - remove unneeded crypto_alg.cra_list initializations
2012-08-01 17:47:27 +08:00
fips.c
gcm.c
crypto: gcm - fix rfc4543 to handle async crypto correctly
2013-04-25 21:01:47 +08:00
gf128mul.c
ghash-generic.c
crypto: cleanup - remove unneeded crypto_alg.cra_list initializations
2012-08-01 17:47:27 +08:00
hmac.c
internal.h
Kconfig
crypto: aesni_intel - add more optimized XTS mode for x86-64
2013-04-25 21:01:53 +08:00
khazad.c
crypto: cleanup - remove unneeded crypto_alg.cra_list initializations
2012-08-01 17:47:27 +08:00
krng.c
crypto: cleanup - remove unneeded crypto_alg.cra_list initializations
2012-08-01 17:47:27 +08:00
lrw.c
lzo.c
crypto: cleanup - remove unneeded crypto_alg.cra_list initializations
2012-08-01 17:47:27 +08:00
Makefile
crypto: add CMAC support to CryptoAPI
2013-04-25 21:01:47 +08:00
md4.c
md5.c
michael_mic.c
pcbc.c
pcompress.c
crypto: user - fix info leaks in report API
2013-02-19 20:27:03 +08:00
pcrypt.c
proc.c
ripemd.h
rmd128.c
rmd160.c
rmd256.c
rmd320.c
rng.c
crypto: user - fix info leaks in report API
2013-02-19 20:27:03 +08:00
salsa20_generic.c
crypto: cleanup - remove unneeded crypto_alg.cra_list initializations
2012-08-01 17:47:27 +08:00
scatterwalk.c
seed.c
crypto: cleanup - remove unneeded crypto_alg.cra_list initializations
2012-08-01 17:47:27 +08:00
seqiv.c
crypto: use ERR_CAST
2013-02-04 21:16:53 +08:00
serpent_generic.c
crypto: serpent - use crypto_[un]register_algs
2012-08-01 17:47:25 +08:00
sha1_generic.c
sha256_generic.c
crypto: sha256 - Expose SHA256 generic routine to be callable externally.
2013-04-03 09:06:31 +08:00
sha512_generic.c
crypto: sha512 - Expose generic sha512 routine to be callable from other modules
2013-04-25 21:00:57 +08:00
shash.c
crypto: user - fix info leaks in report API
2013-02-19 20:27:03 +08:00
tcrypt.c
crypto: add CMAC support to CryptoAPI
2013-04-25 21:01:47 +08:00
tcrypt.h
crypto: ctr - make rfc3686 asynchronous block cipher
2013-01-08 07:03:04 +01:00
tea.c
crypto: tea - use crypto_[un]register_algs
2012-08-01 17:47:24 +08:00
testmgr.c
crypto: add CMAC support to CryptoAPI
2013-04-25 21:01:47 +08:00
testmgr.h
crypto: add CMAC support to CryptoAPI
2013-04-25 21:01:47 +08:00
tgr192.c
crypto: tiger - use crypto_[un]register_shashes
2012-08-01 17:47:26 +08:00
twofish_common.c
twofish_generic.c
crypto: cleanup - remove unneeded crypto_alg.cra_list initializations
2012-08-01 17:47:27 +08:00
vmac.c
crypto: vmac - Make VMAC work when blocks aren't aligned
2012-10-15 22:33:20 +08:00
wp512.c
crypto: whirlpool - use crypto_[un]register_shashes
2012-08-01 17:47:27 +08:00
xcbc.c
xor.c
add further __init annotations to crypto/xor.c
2012-10-11 13:42:32 +11:00
xts.c
zlib.c