summaryrefslogtreecommitdiffstats
path: root/block/blk-core.c
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2009-10-03 16:26:03 +0200
committerJens Axboe <jens.axboe@oracle.com>2009-10-03 16:27:13 +0200
commit8e2967555571659d2c8a70dd120710110ed7bba4 (patch)
tree22716c5388f0269f5c1cef54958ae27df256c498 /block/blk-core.c
parentcfq-iosched: delay async IO dispatch, if sync IO was just done (diff)
downloadlinux-8e2967555571659d2c8a70dd120710110ed7bba4.tar.xz
linux-8e2967555571659d2c8a70dd120710110ed7bba4.zip
cfq-iosched: implement slower async initiate and queue ramp up
This slowly ramps up the async queue depth based on the time passed since the sync IO, and doesn't allow async at all until a sync slice period has passed. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block/blk-core.c')
-rw-r--r--block/blk-core.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/block/blk-core.c b/block/blk-core.c
index ddaaea4fdffc..a8c7fbe52e24 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -2492,6 +2492,14 @@ int kblockd_schedule_work(struct request_queue *q, struct work_struct *work)
}
EXPORT_SYMBOL(kblockd_schedule_work);
+int kblockd_schedule_delayed_work(struct request_queue *q,
+ struct delayed_work *work,
+ unsigned long delay)
+{
+ return queue_delayed_work(kblockd_workqueue, work, delay);
+}
+EXPORT_SYMBOL(kblockd_schedule_delayed_work);
+
int __init blk_dev_init(void)
{
BUILD_BUG_ON(__REQ_NR_BITS > 8 *