dm-crypt: use unbound workqueue for request processing Use unbound workqueue so that work is automatically ballanced between available CPUs. Note: workqueue implementation is somehow buggy, so it still does not yield full parallelization across multiple CPUs. Signed-off-by: Mikulas Patocka --- drivers/md/dm-crypt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) Index: linux-3.2-fast/drivers/md/dm-crypt.c =================================================================== --- linux-3.2-fast.orig/drivers/md/dm-crypt.c 2012-01-25 03:48:55.000000000 +0100 +++ linux-3.2-fast/drivers/md/dm-crypt.c 2012-01-25 03:49:03.000000000 +0100 @@ -1651,8 +1651,9 @@ static int crypt_ctr(struct dm_target *t cc->crypt_queue = alloc_workqueue("kcryptd", WQ_NON_REENTRANT| WQ_CPU_INTENSIVE| - WQ_MEM_RECLAIM, - 1); + WQ_MEM_RECLAIM| + WQ_UNBOUND, + num_online_cpus()); if (!cc->crypt_queue) { ti->error = "Couldn't create kcryptd queue"; goto bad;