Commit 63de428b139d3d31d86ebe25ae97b33f6540fb7e

Authored by Aaron Carroll
Committed by Jens Axboe
1 parent 766ca4428d

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 <aaronc@gelato.unsw.edu.au>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

Showing 1 changed file with 3 additions and 11 deletions Side-by-side Diff

block/deadline-iosched.c
... ... @@ -258,17 +258,9 @@
258 258 else
259 259 rq = dd->next_rq[READ];
260 260  
261   - if (rq) {
262   - /* we have a "next request" */
263   -
264   - if (dd->last_sector != rq->sector)
265   - /* end the batch on a non sequential request */
266   - dd->batching += dd->fifo_batch;
267   -
268   - if (dd->batching < dd->fifo_batch)
269   - /* we are still entitled to batch */
270   - goto dispatch_request;
271   - }
  261 + if (rq && dd->batching < dd->fifo_batch)
  262 + /* we have a next request are still entitled to batch */
  263 + goto dispatch_request;
272 264  
273 265 /*
274 266 * at this point we are not running a batch. select the appropriate