aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorJens Axboe <axboe@suse.de>2005-06-27 10:56:24 +0200
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-27 14:33:30 -0700
commit3b18152c327707ae6a2eeba4cfb66457143753bc (patch)
tree5cdf299af4119762c036cc98a09e23458e0b37fa /Documentation
parent[PATCH] Fix cfq_find_next_crq() (diff)
downloadlinux-dev-3b18152c327707ae6a2eeba4cfb66457143753bc.tar.xz
linux-dev-3b18152c327707ae6a2eeba4cfb66457143753bc.zip
[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')
0 files changed, 0 insertions, 0 deletions