Jens Axboe
a36e71f996
cfq-iosched: add close cooperator code
...
If we have processes that are working in close proximity to each
other on disk, we don't want to idle wait. Instead allow the close
process to issue a request, getting better aggregate bandwidth.
The anticipatory scheduler has similar checks, noop and deadline do
not need it since they don't care about process <-> io mappings.
The code for CFQ is a little more involved though, since we split
request queues into per-process contexts.
This fixes a performance problem with eg dump(8), since it uses
several processes in some silly attempt to speed IO up. Even if
dump(8) isn't really a valid case (it should be fixed by using
CLONE_IO), there are other cases where we see close processes
and where idling ends up hurting performance.
Credit goes to Jeff Moyer <jmoyer@redhat.com> for writing the
initial implementation.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2009-04-15 12:15:11 +02:00
..
as-iosched.c
as-iosched: get rid of private REQ_SYNC/REQ_ASYNC defines
2009-04-15 08:28:10 +02:00
blk-barrier.c
block: Remove code handling bio_alloc failure with __GFP_WAIT
2009-04-15 12:10:12 +02:00
blk-core.c
Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2009-04-07 14:10:10 -07: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: Allow empty integrity profile
2009-01-30 12:34:36 +01: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
[SCSI] block: make blk_rq_map_user take a NULL user-space buffer for WRITE
2009-01-02 11:10:35 -06:00
blk-merge.c
block: fix inconsistency in I/O stat accounting code
2009-04-07 08:12:38 +02:00
blk-settings.c
pata_artop: typo
2009-04-06 20:00:29 -04:00
blk-softirq.c
generic-ipi: remove CSD_FLAG_WAIT
2009-02-25 14:13:44 +01:00
blk-sysfs.c
block: fix bad spelling of quiesce
2009-04-15 08:28:09 +02:00
blk-tag.c
block/blk-tag.c: cleanup kernel-doc
2008-12-29 08:28:43 +01:00
blk-timeout.c
block: fix deadlock in blk_abort_queue() for drivers that readd to timeout list
2009-02-18 10:34:16 +01:00
blk.h
block: fix bad spelling of quiesce
2009-04-15 08:28:09 +02:00
bsg.c
bsg: Remove bogus check against request_queue->max_sectors
2009-03-26 11:01:25 +01:00
cfq-iosched.c
cfq-iosched: add close cooperator code
2009-04-15 12:15:11 +02:00
cmd-filter.c
[SCSI] Make scsi.h independent of the rest of the scsi includes
2009-03-12 12:58:13 -05:00
compat_ioctl.c
block: don't take lock on changing ra_pages
2008-12-29 08:28:43 +01:00
deadline-iosched.c
block: get rid of elevator_t typedef
2008-12-29 08:29:50 +01:00
elevator.c
block: fix bad spelling of quiesce
2009-04-15 08:28:09 +02:00
genhd.c
block: add documentation for register_blkdev()
2009-02-26 10:45:48 +01:00
ioctl.c
block: Remove code handling bio_alloc failure with __GFP_WAIT
2009-04-15 12:10:12 +02:00
Kconfig
tracing/blktrace: move the tracing file to kernel/trace
2009-02-09 10:51:02 +01: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
tracing/blktrace: move the tracing file to kernel/trace
2009-02-09 10:51:02 +01:00
noop-iosched.c
block: get rid of elevator_t typedef
2008-12-29 08:29:50 +01:00
scsi_ioctl.c
block: fix SG_IO to return a proper error value
2009-04-15 12:10:11 +02:00