diff options
author | Mathias Krause <minipli@googlemail.com> | 2010-11-27 03:34:46 -0500 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2010-11-27 03:34:46 -0500 |
commit | 0d258efb6a58fe047197c3b9cff8746bb176d58a (patch) | |
tree | 8576f2af5212ec50509de1071cf7afe1ed9531a8 /crypto | |
parent | 21ea28abcf825729f9698afd7357dfbf7040d4f8 (diff) |
crypto: aesni-intel - Ported implementation to x86-32
The AES-NI instructions are also available in legacy mode so the 32-bit
architecture may profit from those, too.
To illustrate the performance gain here's a short summary of a dm-crypt
speed test on a Core i7 M620 running at 2.67GHz comparing both assembler
implementations:
x86: i568 aes-ni delta
ECB, 256 bit: 93.8 MB/s 123.3 MB/s +31.4%
CBC, 256 bit: 84.8 MB/s 262.3 MB/s +209.3%
LRW, 256 bit: 108.6 MB/s 222.1 MB/s +104.5%
XTS, 256 bit: 105.0 MB/s 205.5 MB/s +95.7%
Additionally, due to some minor optimizations, the 64-bit version also
got a minor performance gain as seen below:
x86-64: old impl. new impl. delta
ECB, 256 bit: 121.1 MB/s 123.0 MB/s +1.5%
CBC, 256 bit: 285.3 MB/s 290.8 MB/s +1.9%
LRW, 256 bit: 263.7 MB/s 265.3 MB/s +0.6%
XTS, 256 bit: 251.1 MB/s 255.3 MB/s +1.7%
Signed-off-by: Mathias Krause <minipli@googlemail.com>
Reviewed-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/Kconfig | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/crypto/Kconfig b/crypto/Kconfig index 69437e21217f..467491df3e3a 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig | |||
@@ -539,8 +539,9 @@ config CRYPTO_AES_X86_64 | |||
539 | 539 | ||
540 | config CRYPTO_AES_NI_INTEL | 540 | config CRYPTO_AES_NI_INTEL |
541 | tristate "AES cipher algorithms (AES-NI)" | 541 | tristate "AES cipher algorithms (AES-NI)" |
542 | depends on (X86 || UML_X86) && 64BIT | 542 | depends on (X86 || UML_X86) |
543 | select CRYPTO_AES_X86_64 | 543 | select CRYPTO_AES_X86_64 if 64BIT |
544 | select CRYPTO_AES_586 if !64BIT | ||
544 | select CRYPTO_CRYPTD | 545 | select CRYPTO_CRYPTD |
545 | select CRYPTO_ALGAPI | 546 | select CRYPTO_ALGAPI |
546 | select CRYPTO_FPU | 547 | select CRYPTO_FPU |
@@ -563,9 +564,10 @@ config CRYPTO_AES_NI_INTEL | |||
563 | 564 | ||
564 | See <http://csrc.nist.gov/encryption/aes/> for more information. | 565 | See <http://csrc.nist.gov/encryption/aes/> for more information. |
565 | 566 | ||
566 | In addition to AES cipher algorithm support, the | 567 | In addition to AES cipher algorithm support, the acceleration |
567 | acceleration for some popular block cipher mode is supported | 568 | for some popular block cipher mode is supported too, including |
568 | too, including ECB, CBC, CTR, LRW, PCBC, XTS. | 569 | ECB, CBC, LRW, PCBC, XTS. The 64 bit version has additional |
570 | acceleration for CTR. | ||
569 | 571 | ||
570 | config CRYPTO_ANUBIS | 572 | config CRYPTO_ANUBIS |
571 | tristate "Anubis cipher algorithm" | 573 | tristate "Anubis cipher algorithm" |