linux/block
Corrado Zoccolo 5db5d64277 cfq-iosched: adapt slice to number of processes doing I/O
When the number of processes performing I/O concurrently increases,
a fixed time slice per process will cause large latencies.

This patch, if low_latency mode is enabled,  will scale the time slice
assigned to each process according to a 300ms target latency.

In order to keep fairness among processes:
* The number of active processes is computed using a special form of
running average, that quickly follows sudden increases (to keep latency low),
and decrease slowly (to have fairness in spite of rapid decreases of this
value).

To safeguard sequential bandwidth, we impose a minimum time slice
(computed using 2*cfq_slice_idle as base, adjusted according to priority
and async-ness).

Signed-off-by: Corrado Zoccolo <czoccolo@gmail.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2009-10-28 09:23:26 +01:00
..
blk-barrier.c block: allow large discard requests 2009-10-01 21:19:34 +02:00
blk-core.c block: Seperate read and write statistics of in_flight requests v2 2009-10-06 20:16:55 +02:00
blk-exec.c block: don't set REQ_NOMERGE unnecessarily 2009-04-28 07:37:33 +02:00
blk-integrity.c block: fix improper kobject release in blk_integrity_unregister 2009-07-28 09:11:14 +02:00
blk-ioc.c block: prevent possible io_context->refcount overflow 2009-06-10 23:07:15 +02:00
blk-iopoll.c block: use interrupts disabled version of raise_softirq_irqoff() 2009-09-11 14:33:32 +02:00
blk-map.c block: Use accessor functions for queue limits 2009-05-22 23:22:54 +02:00
blk-merge.c block: Seperate read and write statistics of in_flight requests v2 2009-10-06 20:16:55 +02:00
blk-settings.c blk-settings: fix function parameter kernel-doc notation 2009-10-12 08:20:47 +02:00
blk-softirq.c generic-ipi: remove CSD_FLAG_WAIT 2009-02-25 14:13:44 +01:00
blk-sysfs.c Add missing blk_trace_remove_sysfs to be in pair with blk_trace_init_sysfs 2009-10-01 21:15:46 +02:00
blk-tag.c block: use proper BLK_RW_ASYNC in blk_queue_start_tag() 2009-10-06 20:19:02 +02:00
blk-timeout.c block: clean up misc stuff after block layer timeout conversion 2009-04-28 07:37:34 +02:00
blk.h block: implement mixed merge of different failfast requests 2009-09-11 14:33:30 +02:00
bsg.c Driver-Core: extend devnode callbacks to provide permissions 2009-09-19 12:50:38 -07:00
cfq-iosched.c cfq-iosched: adapt slice to number of processes doing I/O 2009-10-28 09:23:26 +01:00
compat_ioctl.c block: Topology ioctls 2009-10-03 20:52:01 +02:00
deadline-iosched.c block: convert to pos and nr_sectors accessors 2009-05-11 09:50:54 +02:00
elevator.c Merge branch 'for-linus' into for-2.6.33 2009-10-13 12:29:45 +02:00
genhd.c block: Seperate read and write statistics of in_flight requests v2 2009-10-06 20:16:55 +02:00
ioctl.c block: Topology ioctls 2009-10-03 20:52:01 +02:00
Kconfig Make SCSI SG v4 driver enabled by default and remove EXPERIMENTAL dependency, since udev depends on BSG 2009-08-04 22:10:17 +02:00
Kconfig.iosched block: CFQ is more than a desktop scheduler 2009-10-03 09:40:47 +02:00
Makefile block: remove the anticipatory IO scheduler 2009-10-03 09:37:51 +02:00
noop-iosched.c block: get rid of elevator_t typedef 2008-12-29 08:29:50 +01:00
scsi_ioctl.c block: call blk_scsi_ioctl_init() 2009-07-10 20:31:53 +02:00