Skip to content

Commit

Permalink
deadline-iosched: allow non-sequential batching
Browse files Browse the repository at this point in the history
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 <aaronc@gelato.unsw.edu.au>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
  • Loading branch information
Aaron Carroll authored and Jens Axboe committed Oct 9, 2008
1 parent 766ca44 commit 63de428
Showing 1 changed file with 3 additions and 11 deletions.
14 changes: 3 additions & 11 deletions block/deadline-iosched.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 63de428

Please sign in to comment.