]> git.baikalelectronics.ru Git - kernel.git/commit
cfq-iosched: change dispatch logic to deal with single requests at the time
authorJens Axboe <jens.axboe@oracle.com>
Tue, 7 Apr 2009 06:51:19 +0000 (08:51 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Tue, 7 Apr 2009 06:51:19 +0000 (08:51 +0200)
commit1cfca81cb97f25e9e443a3ebbbaf563fd2291a61
tree27b82d748bdf99296b8a914c51dad2fbea90aea3
parentd2e374c311c37537bd82a25ff2c196036f26b4ef
cfq-iosched: change dispatch logic to deal with single requests at the time

The IO scheduler core calls into the IO scheduler dispatch_request hook
to move requests from the IO scheduler and into the driver dispatch
list. It only does so when the dispatch list is empty. CFQ moves several
requests to the dispatch list, which can cause higher latencies if we
suddenly have to switch to some important sync IO. Change the logic to
move one request at the time instead.

This should almost be functionally equivalent to what we did before,
except that we now honor 'quantum' as the maximum queue depth at the
device side from any single cfqq. If there's just a single active
cfqq, we allow up to 4 times the normal quantum.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
block/cfq-iosched.c