cfq-iosched: make seek_mean converge more quickly

Right now, depending on the first sector to which a process issues I/O,
the seek time may start out way out of whack. So make sure we start
with 0 sectors in seek, instead of the offset of the first request
issued.

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
Jeff Moyer 2009-04-21 07:25:04 +02:00 committed by Jens Axboe
parent b759113499
commit 4d00aa47e2
1 changed files with 3 additions and 1 deletions

View File

@ -1908,7 +1908,9 @@ cfq_update_io_seektime(struct cfq_data *cfqd, struct cfq_io_context *cic,
sector_t sdist; sector_t sdist;
u64 total; u64 total;
if (cic->last_request_pos < rq->sector) if (!cic->last_request_pos)
sdist = 0;
else if (cic->last_request_pos < rq->sector)
sdist = rq->sector - cic->last_request_pos; sdist = rq->sector - cic->last_request_pos;
else else
sdist = cic->last_request_pos - rq->sector; sdist = cic->last_request_pos - rq->sector;