diff options
author | Corrado Zoccolo <czoccolo@gmail.com> | 2009-10-26 22:45:29 +0100 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2009-10-28 09:23:26 +0100 |
commit | 718eee0579b802aabe3bafacf09d0a9b0830f1dd (patch) | |
tree | 3a85a6d38ed7b68ed6ca21d04158afee13980e5e /arch/powerpc/boot | |
parent | a6d44e982d3734583b3b4e1d36921af8cfd61fc0 (diff) |
cfq-iosched: fairness for sync no-idle queues
Currently no-idle queues in cfq are not serviced fairly:
even if they can only dispatch a small number of requests at a time,
they have to compete with idling queues to be serviced, experiencing
large latencies.
We should notice, instead, that no-idle queues are the ones that would
benefit most from having low latency, in fact they are any of:
* processes with large think times (e.g. interactive ones like file
managers)
* seeky (e.g. programs faulting in their code at startup)
* or marked as no-idle from upper levels, to improve latencies of those
requests.
This patch improves the fairness and latency for those queues, by:
* separating sync idle, sync no-idle and async queues in separate
service_trees, for each priority
* service all no-idle queues together
* and idling when the last no-idle queue has been serviced, to
anticipate for more no-idle work
* the timeslices allotted for idle and no-idle service_trees are
computed proportionally to the number of processes in each set.
Servicing all no-idle queues together should have a performance boost
for NCQ-capable drives, without compromising fairness.
Signed-off-by: Corrado Zoccolo <czoccolo@gmail.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'arch/powerpc/boot')
0 files changed, 0 insertions, 0 deletions