From: Aaron Carroll Date: Thu, 14 Aug 2008 08:17:13 +0000 (+1000) Subject: deadline-iosched: allow non-sequential batching X-Git-Tag: v2.6.28-rc1~733^2~114 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=63de428b139d3d31d86ebe25ae97b33f6540fb7e;p=platform%2Fkernel%2Flinux-3.10.git deadline-iosched: allow non-sequential batching Deadline currently only batches sector-contiguous requests, so except for a few circumstances (e.g. requests in a single direction), it is essentially first come first served. This is bad for throughput, so change it to CSCAN, which means requests in a batch do not need to be sequential and are issued in increasing sector order. Signed-off-by: Aaron Carroll Signed-off-by: Jens Axboe --- diff --git a/block/deadline-iosched.c b/block/deadline-iosched.c index 342448c..07b80e4 100644 --- a/block/deadline-iosched.c +++ b/block/deadline-iosched.c @@ -258,17 +258,9 @@ static int deadline_dispatch_requests(struct request_queue *q, int force) else rq = dd->next_rq[READ]; - if (rq) { - /* we have a "next request" */ - - if (dd->last_sector != rq->sector) - /* end the batch on a non sequential request */ - dd->batching += dd->fifo_batch; - - if (dd->batching < dd->fifo_batch) - /* we are still entitled to batch */ - goto dispatch_request; - } + if (rq && dd->batching < dd->fifo_batch) + /* we have a next request are still entitled to batch */ + goto dispatch_request; /* * at this point we are not running a batch. select the appropriate