OSDN Git Service

crypto: cryptd - Add cryptd_max_cpu_qlen module parameter
authorJon Maxwell <jmaxwell37@gmail.com>
Wed, 22 Nov 2017 05:08:17 +0000 (16:08 +1100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 29 Nov 2017 06:33:31 +0000 (17:33 +1100)
Make the cryptd queue length configurable. We recently had customer where this
needed to be tuned to accommodate the aesni_intel module and prevent packet
drop.

Signed-off-by: Jon Maxwell <jmaxwell37@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/cryptd.c

index bd43cf5..b1eb131 100644 (file)
@@ -32,7 +32,9 @@
 #include <linux/sched.h>
 #include <linux/slab.h>
 
-#define CRYPTD_MAX_CPU_QLEN 1000
+unsigned int cryptd_max_cpu_qlen = 1000;
+module_param(cryptd_max_cpu_qlen, uint, 0);
+MODULE_PARM_DESC(cryptd_max_cpu_qlen, "Set cryptd Max queue depth");
 
 struct cryptd_cpu_queue {
        struct crypto_queue queue;
@@ -116,6 +118,7 @@ static int cryptd_init_queue(struct cryptd_queue *queue,
                crypto_init_queue(&cpu_queue->queue, max_cpu_qlen);
                INIT_WORK(&cpu_queue->work, cryptd_queue_worker);
        }
+       pr_info("cryptd: max_cpu_qlen set to %d\n", max_cpu_qlen);
        return 0;
 }
 
@@ -1372,7 +1375,7 @@ static int __init cryptd_init(void)
 {
        int err;
 
-       err = cryptd_init_queue(&queue, CRYPTD_MAX_CPU_QLEN);
+       err = cryptd_init_queue(&queue, cryptd_max_cpu_qlen);
        if (err)
                return err;