From 5eb86bbd13942bf41d0f1467e054534d062cf9d9 Mon Sep 17 00:00:00 2001 From: Tim Murray Date: Tue, 19 Jan 2016 16:33:27 -0800 Subject: dm-crypt: run in a WQ_HIGHPRI workqueue Running dm-crypt in a standard workqueue results in IO competing for CPU time with standard user apps, which can lead to pipeline bubbles and seriously degraded performance. Move to a WQ_HIGHPRI workqueue to protect against that. bug 25392275 Change-Id: I589149a31c7b5d322fe2ed5b2476b1f6e3d5ee6f --- drivers/md/dm-crypt.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'drivers/md') diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c index fa25c505b..a3bbf3fa0 100644 --- a/drivers/md/dm-crypt.c +++ b/drivers/md/dm-crypt.c @@ -1624,6 +1624,7 @@ static int crypt_ctr(struct dm_target *ti, unsigned int argc, char **argv) ret = -ENOMEM; cc->io_queue = alloc_workqueue("kcryptd_io", + WQ_HIGHPRI | WQ_NON_REENTRANT| WQ_MEM_RECLAIM, 1); @@ -1633,7 +1634,8 @@ static int crypt_ctr(struct dm_target *ti, unsigned int argc, char **argv) } cc->crypt_queue = alloc_workqueue("kcryptd", - WQ_CPU_INTENSIVE | WQ_MEM_RECLAIM | + WQ_HIGHPRI | + WQ_MEM_RECLAIM | WQ_UNBOUND, num_online_cpus()); if (!cc->crypt_queue) { ti->error = "Couldn't create kcryptd queue"; -- cgit v1.2.3