diff options
author | Tejun Heo <tj@kernel.org> | 2011-01-03 15:01:47 +0100 |
---|---|---|
committer | Jens Axboe <jaxboe@fusionio.com> | 2011-01-03 15:01:47 +0100 |
commit | 89b90be2d877a904b1704e4029db65655bfc6282 (patch) | |
tree | 0dbeda7f0efa17373bdd3c59793a36c417fa9d1c /block | |
parent | 27667c996f6a0bed4ad1e10ac0a0dbb6037968db (diff) | |
download | op-kernel-dev-89b90be2d877a904b1704e4029db65655bfc6282.zip op-kernel-dev-89b90be2d877a904b1704e4029db65655bfc6282.tar.gz |
block: make kblockd_workqueue smarter
kblockd is used for unplugging and may affect IO latency and
throughput and the max number of concurrent work items are bound by
the number of block devices. Make it HIGHPRI workqueue w/ default max
concurrency.
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/blk-core.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/block/blk-core.c b/block/blk-core.c index 1510705..3689319 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -2606,7 +2606,9 @@ int __init blk_dev_init(void) BUILD_BUG_ON(__REQ_NR_BITS > 8 * sizeof(((struct request *)0)->cmd_flags)); - kblockd_workqueue = create_workqueue("kblockd"); + /* used for unplugging and affects IO latency/throughput - HIGHPRI */ + kblockd_workqueue = alloc_workqueue("kblockd", + WQ_MEM_RECLAIM | WQ_HIGHPRI, 0); if (!kblockd_workqueue) panic("Failed to create kblockd\n"); |