aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2011-01-03 09:01:47 -0500
committerJens Axboe <jaxboe@fusionio.com>2011-01-03 09:01:47 -0500
commit89b90be2d877a904b1704e4029db65655bfc6282 (patch)
tree0dbeda7f0efa17373bdd3c59793a36c417fa9d1c
parent27667c996f6a0bed4ad1e10ac0a0dbb6037968db (diff)
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.c4
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)
2606 BUILD_BUG_ON(__REQ_NR_BITS > 8 * 2606 BUILD_BUG_ON(__REQ_NR_BITS > 8 *
2607 sizeof(((struct request *)0)->cmd_flags)); 2607 sizeof(((struct request *)0)->cmd_flags));
2608 2608
2609 kblockd_workqueue = create_workqueue("kblockd"); 2609 /* used for unplugging and affects IO latency/throughput - HIGHPRI */
2610 kblockd_workqueue = alloc_workqueue("kblockd",
2611 WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
2610 if (!kblockd_workqueue) 2612 if (!kblockd_workqueue)
2611 panic("Failed to create kblockd\n"); 2613 panic("Failed to create kblockd\n");
2612 2614