[PATCH 4.9 071/104] crypto: crypto4xx - increase context and scatter ring buffer elements

2017-12-22 Thread Greg Kroah-Hartman
4.9-stable review patch.  If anyone has any objections, please let me know.

--

From: Christian Lamparter 


[ Upstream commit 778f81d6cdb7d25360f082ac0384d5103f04eca5 ]

If crypto4xx is used in conjunction with dm-crypt, the available
ring buffer elements are not enough to handle the load properly.

On an aes-cbc-essiv:sha256 encrypted swap partition the read
performance is abyssal: (tested with hdparm -t)

/dev/mapper/swap_crypt:
 Timing buffered disk reads:  14 MB in  3.68 seconds =   3.81 MB/sec

The patch increases both PPC4XX_NUM_SD and PPC4XX_NUM_PD to 256.
This improves the performance considerably:

/dev/mapper/swap_crypt:
 Timing buffered disk reads: 104 MB in  3.03 seconds =  34.31 MB/sec

Furthermore, PPC4XX_LAST_SD, PPC4XX_LAST_GD and PPC4XX_LAST_PD
can be easily calculated from their respective PPC4XX_NUM_*
constant.

Signed-off-by: Christian Lamparter 
Signed-off-by: Herbert Xu 
Signed-off-by: Sasha Levin 
Signed-off-by: Greg Kroah-Hartman 
---
 drivers/crypto/amcc/crypto4xx_core.h |   10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

--- a/drivers/crypto/amcc/crypto4xx_core.h
+++ b/drivers/crypto/amcc/crypto4xx_core.h
@@ -34,12 +34,12 @@
 #define PPC405EX_CE_RESET   0x0008
 
 #define CRYPTO4XX_CRYPTO_PRIORITY  300
-#define PPC4XX_LAST_PD 63
-#define PPC4XX_NUM_PD  64
-#define PPC4XX_LAST_GD 1023
+#define PPC4XX_NUM_PD  256
+#define PPC4XX_LAST_PD (PPC4XX_NUM_PD - 1)
 #define PPC4XX_NUM_GD  1024
-#define PPC4XX_LAST_SD 63
-#define PPC4XX_NUM_SD  64
+#define PPC4XX_LAST_GD (PPC4XX_NUM_GD - 1)
+#define PPC4XX_NUM_SD  256
+#define PPC4XX_LAST_SD (PPC4XX_NUM_SD - 1)
 #define PPC4XX_SD_BUFFER_SIZE  2048
 
 #define PD_ENTRY_INUSE 1




[PATCH 4.9 071/104] crypto: crypto4xx - increase context and scatter ring buffer elements

2017-12-22 Thread Greg Kroah-Hartman
4.9-stable review patch.  If anyone has any objections, please let me know.

--

From: Christian Lamparter 


[ Upstream commit 778f81d6cdb7d25360f082ac0384d5103f04eca5 ]

If crypto4xx is used in conjunction with dm-crypt, the available
ring buffer elements are not enough to handle the load properly.

On an aes-cbc-essiv:sha256 encrypted swap partition the read
performance is abyssal: (tested with hdparm -t)

/dev/mapper/swap_crypt:
 Timing buffered disk reads:  14 MB in  3.68 seconds =   3.81 MB/sec

The patch increases both PPC4XX_NUM_SD and PPC4XX_NUM_PD to 256.
This improves the performance considerably:

/dev/mapper/swap_crypt:
 Timing buffered disk reads: 104 MB in  3.03 seconds =  34.31 MB/sec

Furthermore, PPC4XX_LAST_SD, PPC4XX_LAST_GD and PPC4XX_LAST_PD
can be easily calculated from their respective PPC4XX_NUM_*
constant.

Signed-off-by: Christian Lamparter 
Signed-off-by: Herbert Xu 
Signed-off-by: Sasha Levin 
Signed-off-by: Greg Kroah-Hartman 
---
 drivers/crypto/amcc/crypto4xx_core.h |   10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

--- a/drivers/crypto/amcc/crypto4xx_core.h
+++ b/drivers/crypto/amcc/crypto4xx_core.h
@@ -34,12 +34,12 @@
 #define PPC405EX_CE_RESET   0x0008
 
 #define CRYPTO4XX_CRYPTO_PRIORITY  300
-#define PPC4XX_LAST_PD 63
-#define PPC4XX_NUM_PD  64
-#define PPC4XX_LAST_GD 1023
+#define PPC4XX_NUM_PD  256
+#define PPC4XX_LAST_PD (PPC4XX_NUM_PD - 1)
 #define PPC4XX_NUM_GD  1024
-#define PPC4XX_LAST_SD 63
-#define PPC4XX_NUM_SD  64
+#define PPC4XX_LAST_GD (PPC4XX_NUM_GD - 1)
+#define PPC4XX_NUM_SD  256
+#define PPC4XX_LAST_SD (PPC4XX_NUM_SD - 1)
 #define PPC4XX_SD_BUFFER_SIZE  2048
 
 #define PD_ENTRY_INUSE 1