1
linux/block
Aaron Carroll 45333d5a31 cfq-iosched: fix queue depth detection
CFQ's detection of queueing devices assumes a non-queuing device and detects
if the queue depth reaches a certain threshold.  Under some workloads (e.g.
synchronous reads), CFQ effectively forces a unit queue depth, thus defeating
the detection logic.  This leads to poor performance on queuing hardware,
since the idle window remains enabled.

This patch inverts the sense of the logic: assume a queuing-capable device,
and detect if the depth does not exceed the threshold.

Signed-off-by: Aaron Carroll <aaronc@gelato.unsw.edu.au>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2008-10-09 08:56:09 +02:00
..
as-iosched.c block: make kblockd_schedule_work() take the queue as parameter 2008-10-09 08:56:09 +02:00
blk-barrier.c Allow elevators to sort/merge discard requests 2008-10-09 08:56:02 +02:00
blk-core.c block: don't use bio_has_data() in the completion path 2008-10-09 08:56:09 +02:00
blk-exec.c Add some block/ source files to the kernel-api docbook. Fix kernel-doc notation in them as needed. Fix changed function parameter names. Fix typos/spellos. In comments, change REQ_SPECIAL to REQ_TYPE_SPECIAL and REQ_BLOCK_PC to REQ_TYPE_BLOCK_PC. 2008-10-09 08:56:03 +02:00
blk-integrity.c block: implement and use {disk|part}_to_dev() 2008-10-09 08:56:07 +02:00
blk-ioc.c cfq-iosched: fix RCU race in the cfq io_context destructor handling 2008-05-07 09:28:57 +02:00
blk-map.c Add some block/ source files to the kernel-api docbook. Fix kernel-doc notation in them as needed. Fix changed function parameter names. Fix typos/spellos. In comments, change REQ_SPECIAL to REQ_TYPE_SPECIAL and REQ_BLOCK_PC to REQ_TYPE_BLOCK_PC. 2008-10-09 08:56:03 +02:00
blk-merge.c block: inherit CPU completion on bio->rq and rq->rq merges 2008-10-09 08:56:09 +02:00
blk-settings.c block: add support for IO CPU affinity 2008-10-09 08:56:09 +02:00
blk-softirq.c block: add support for IO CPU affinity 2008-10-09 08:56:09 +02:00
blk-sysfs.c block: add support for IO CPU affinity 2008-10-09 08:56:09 +02:00
blk-tag.c Add some block/ source files to the kernel-api docbook. Fix kernel-doc notation in them as needed. Fix changed function parameter names. Fix typos/spellos. In comments, change REQ_SPECIAL to REQ_TYPE_SPECIAL and REQ_BLOCK_PC to REQ_TYPE_BLOCK_PC. 2008-10-09 08:56:03 +02:00
blk.h block: add support for IO CPU affinity 2008-10-09 08:56:09 +02:00
blktrace.c blktrace: simplify flags handling in __blk_add_trace 2008-10-09 08:56:01 +02:00
bsg.c block: move cmdfilter from gendisk to request_queue 2008-08-27 09:50:19 +02:00
cfq-iosched.c cfq-iosched: fix queue depth detection 2008-10-09 08:56:09 +02:00
cmd-filter.c block: move holder_dir from disk to part0 2008-10-09 08:56:08 +02:00
compat_ioctl.c Add BLKDISCARD ioctl to allow userspace to discard sectors 2008-10-09 08:56:02 +02:00
deadline-iosched.c deadline-iosched: non-functional fixes 2008-10-09 08:56:03 +02:00
elevator.c block: use linux/uaccess.h in elevator.c instead of asm variant 2008-10-09 08:56:09 +02:00
genhd.c block: allow disk to have extended device number 2008-10-09 08:56:08 +02:00
ioctl.c block: make partition array dynamic 2008-10-09 08:56:08 +02:00
Kconfig block: Block layer data integrity support 2008-07-03 13:21:13 +02:00
Kconfig.iosched update I/O sched Kconfig help texts - CFQ is now default, not AS. 2007-02-17 20:08:22 +01:00
Makefile block: split softirq handling into blk-softirq.c 2008-10-09 08:56:09 +02:00
noop-iosched.c block: let elv_register() return void 2007-12-18 08:29:28 +01:00
scsi_ioctl.c SG_IO block filter whitelist missing MMC SET READ AHEAD command 2008-10-09 08:56:00 +02:00