summaryrefslogtreecommitdiff
path: root/block/cfq-iosched.c
AgeCommit message (Collapse)AuthorFilesLines
2006-03-28[PATCH] cfq-iosched: small cfq_choose_req() optimizationAndreas Mohr1-18/+32
this is a small optimization to cfq_choose_req() in the CFQ I/O scheduler (this function is a semi-often invoked candidate in an oprofile log): by using a bit mask variable, we can use a simple switch() to check the various cases instead of having to query two variables for each check. Benefit: 251 vs. 285 bytes footprint of cfq_choose_req(). Also, common case 0 (no request wrapping) is now checked first in code. Signed-off-by: Andreas Mohr <andi@lisas.de> Signed-off-by: Jens Axboe <axboe@suse.de>
2006-03-28[PATCH] [BLOCK] cfq-iosched: change cfq io context linking from list to treeJens Axboe1-110/+95
On setups with many disks, we spend a considerable amount of time looking up the process-disk mapping on each queue of io. Testing with a NULL based block driver, this costs 40-50% reduction in throughput for 1000 disks. Signed-off-by: Jens Axboe <axboe@suse.de>
2006-03-26[PATCH] mempool: use mempool_create_slab_pool()Matthew Dobson1-1/+1
Modify well over a dozen mempool users to call mempool_create_slab_pool() rather than calling mempool_create() with extra arguments, saving about 30 lines of code and increasing readability. Signed-off-by: Matthew Dobson <colpatch@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-19[PATCH] fix rmmod problems with elevator attributes, clean them upAl Viro1-73/+20
2006-03-19[PATCH] elevator_t lifetime rules and sysfs fixesAl Viro1-57/+17
2006-03-19[PATCH] noise removal: cfq-iosched.cAl Viro1-14/+2
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-03-19[PATCH] don't bother with refcounting for cfq_dataAl Viro1-21/+7
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-03-19[PATCH] fix cfq_get_queue()/ioprio_set(2) racesAl Viro1-4/+12
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-03-19[PATCH] deal with rmmod/put_io_context() racesAl Viro1-0/+16
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-03-19[PATCH] stop elv_unregister() from rogering other iosched's data, fix lockingAl Viro1-0/+8
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-03-19[PATCH] stop cfq from pinning queue downAl Viro1-4/+0
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-03-19[PATCH] make cfq_exit_queue() prune the cfq_io_context for that queueAl Viro1-1/+58
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-03-19[PATCH] fix the exclusion for ioprio_set()Al Viro1-1/+13
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-03-19[PATCH] keep sync and async cfq_queue separateAl Viro1-10/+26
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-03-19[PATCH] switch to use of ->key to get cfq_data by cfq_io_contextAl Viro1-11/+15
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-03-19[PATCH] stop leaking cfq_data in cfq_set_request()Al Viro1-2/+0
We don't need to pin ->key down; ->cfqq->cfqd will do that for us. Incidentally, that stops the leak we had - that reference was never dropped. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-03-19[PATCH] fix cfq hash lookupsAl Viro1-1/+1
If somebody does a hash lookup for cfq_queue while ioprio of an async queue is elevated, they shouldn't end up stuck with lowered ioprio when we go back. Fix is to use ->org_ioprio{,class} in hash lookups. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2006-02-28[PATCH] cfq-iosched: slice expiry fixupsJens Axboe1-91/+60
During testing of SLES10, we encountered a hang in the CFQ io scheduler. Turns out the deferred slice expiry logic is buggy, so remove that for now. We could be left with an idle queue that would never wake up. So kill that logic, always expire immediately. Also fix a potential timer race condition. Patch looks bigger than it is, because it moves a function. Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-06[BLOCK] mark some block/ variables consArjan van de Ven1-8/+8
the patch below marks various read-only variables in block/* as const, so that gcc can optimize the use of them; eg gcc will replace the use by the value directly now and will even remove the memory usage of these. Signed-off-by: Arjan van de Ven <arjan@infradead.org> Signed-off-by: Jens Axboe <axboe@suse.de>
2005-11-18[BLOCK] new block/ directory comment tidyCoywolf Qi Hunt1-2/+0
Some leftover comments referring to drivers/block that are now block/. They don't add any information we don't already have, so kill them. Signed-off-by: Coywolf Qi Hunt <qiyong@fc-cn.com> Signed-off-by: Jens Axboe <axboe@suse.de>
2005-11-12[BLOCK] cfq-iosched: fix slice_left calculationTejun Heo1-2/+2
When cfq slice expires, remainder of slice is calculated and stored in cfqq->slice_left. Current code calculates the opposite of remainder - how many jiffies the cfqq has used past slice end. This patch fixes the bug. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jens Axboe <axboe@suse.de>
2005-11-12[BLOCK] cfq-iosched: cfq forced dispatching fixTejun Heo1-9/+45
cfq forced dispatching might not return all requests on the queue. This bug can hang elevator switchinig and corrupt request ordering during flush sequence. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jens Axboe <axboe@suse.de>
2005-11-04[BLOCK] Move all core block layer code to new block/ directoryJens Axboe1-0/+2428
drivers/block/ is right now a mix of core and driver parts. Lets move the core parts to a new top level directory. Al will move the fs/ related block parts to block/ next. Signed-off-by: Jens Axboe <axboe@suse.de>