aboutsummaryrefslogtreecommitdiff
path: root/drivers/md
diff options
context:
space:
mode:
authorTim Murray <timmurray@google.com>2016-01-19 16:33:27 -0800
committerMister Oyster <oysterized@gmail.com>2017-12-27 15:33:13 +0100
commit5eb86bbd13942bf41d0f1467e054534d062cf9d9 (patch)
tree4edde10af28defcb6d5f1d52b513083d578fd38e /drivers/md
parent3ea163f6e5850c629caa998735dd798d2ac0c99a (diff)
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
Diffstat (limited to 'drivers/md')
-rw-r--r--drivers/md/dm-crypt.c4
1 files changed, 3 insertions, 1 deletions
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";