| From 12d3f49e1ffbbf8cbbb60acae5a21103c5c841ac Mon Sep 17 00:00:00 2001 |
| From: Anton Blanchard <anton@samba.org> |
| Date: Fri, 10 Jun 2016 16:47:03 +1000 |
| Subject: crypto: vmx - Increase priority of aes-cbc cipher |
| |
| From: Anton Blanchard <anton@samba.org> |
| |
| commit 12d3f49e1ffbbf8cbbb60acae5a21103c5c841ac upstream. |
| |
| All of the VMX AES ciphers (AES, AES-CBC and AES-CTR) are set at |
| priority 1000. Unfortunately this means we never use AES-CBC and |
| AES-CTR, because the base AES-CBC cipher that is implemented on |
| top of AES inherits its priority. |
| |
| To fix this, AES-CBC and AES-CTR have to be a higher priority. Set |
| them to 2000. |
| |
| Testing on a POWER8 with: |
| |
| cryptsetup benchmark --cipher aes --key-size 256 |
| |
| Shows decryption speed increase from 402.4 MB/s to 3069.2 MB/s, |
| over 7x faster. Thanks to Mike Strosaker for helping me debug |
| this issue. |
| |
| Fixes: 8c755ace357c ("crypto: vmx - Adding CBC routines for VMX module") |
| Signed-off-by: Anton Blanchard <anton@samba.org> |
| Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/crypto/vmx/aes_cbc.c | 2 +- |
| drivers/crypto/vmx/aes_ctr.c | 2 +- |
| 2 files changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/crypto/vmx/aes_cbc.c |
| +++ b/drivers/crypto/vmx/aes_cbc.c |
| @@ -182,7 +182,7 @@ struct crypto_alg p8_aes_cbc_alg = { |
| .cra_name = "cbc(aes)", |
| .cra_driver_name = "p8_aes_cbc", |
| .cra_module = THIS_MODULE, |
| - .cra_priority = 1000, |
| + .cra_priority = 2000, |
| .cra_type = &crypto_blkcipher_type, |
| .cra_flags = CRYPTO_ALG_TYPE_BLKCIPHER | CRYPTO_ALG_NEED_FALLBACK, |
| .cra_alignmask = 0, |
| --- a/drivers/crypto/vmx/aes_ctr.c |
| +++ b/drivers/crypto/vmx/aes_ctr.c |
| @@ -166,7 +166,7 @@ struct crypto_alg p8_aes_ctr_alg = { |
| .cra_name = "ctr(aes)", |
| .cra_driver_name = "p8_aes_ctr", |
| .cra_module = THIS_MODULE, |
| - .cra_priority = 1000, |
| + .cra_priority = 2000, |
| .cra_type = &crypto_blkcipher_type, |
| .cra_flags = CRYPTO_ALG_TYPE_BLKCIPHER | CRYPTO_ALG_NEED_FALLBACK, |
| .cra_alignmask = 0, |