summaryrefslogtreecommitdiff
path: root/Documentation/block
diff options
context:
space:
mode:
authorJens Axboe <axboe@suse.de>2005-06-27 12:56:24 +0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-28 01:33:30 +0400
commit3b18152c327707ae6a2eeba4cfb66457143753bc (patch)
tree5cdf299af4119762c036cc98a09e23458e0b37fa /Documentation/block
parent3d25f3566bb606720a67caef77b16190df10dd98 (diff)
downloadlinux-3b18152c327707ae6a2eeba4cfb66457143753bc.tar.xz
[PATCH] CFQ io scheduler updates
- Adjust slice values - Instead of one async queue, one is defined per priority level. This prevents kernel threads (such as reiserfs/x and others) that run at higher io priority from conflicting with others. Previously, it was a coin toss what io prio the async queue got, it was defined by who first set up the queue. - Let a time slice only begin, when the previous slice is completely done. Previously we could be somewhat unfair to a new sync slice, if the previous slice was async and had several ios queued. This might need a little tweaking if throughput suffers a little due to this, allowing perhaps an overlap of a single request or so. - Optimize the calling of kblockd_schedule_work() by doing it only when it is strictly necessary (no requests in driver and work left to do). - Correct sync vs async logic. A 'normal' process can be purely async as well, and a flusher can be purely sync as well. Sync or async is now a property of the class defined and requests pending. Previously writers could be considered sync, when they were really async. - Get rid of the bit fields in cfqq and crq, use flags instead. - Various other cleanups and fixes Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'Documentation/block')
0 files changed, 0 insertions, 0 deletions