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 | |
parent | 27667c996f6a0bed4ad1e10ac0a0dbb6037968db (diff) | |
download | linux-89b90be2d877a904b1704e4029db65655bfc6282.tar.gz linux-89b90be2d877a904b1704e4029db65655bfc6282.tar.bz2 linux-89b90be2d877a904b1704e4029db65655bfc6282.zip |
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>
-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 151070541e21..3689319a5974 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"); |