diff options
| author | Tim Murray <timmurray@google.com> | 2016-01-19 16:33:27 -0800 |
|---|---|---|
| committer | Mister Oyster <oysterized@gmail.com> | 2017-12-27 15:33:13 +0100 |
| commit | 5eb86bbd13942bf41d0f1467e054534d062cf9d9 (patch) | |
| tree | 4edde10af28defcb6d5f1d52b513083d578fd38e /drivers/md/dm-crypt.c | |
| parent | 3ea163f6e5850c629caa998735dd798d2ac0c99a (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/dm-crypt.c')
| -rw-r--r-- | drivers/md/dm-crypt.c | 4 |
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"; |
