linux-kernel-test/block
Divyesh Shah 3440c49f5c cfq-iosched: Fix the incorrect timeslice accounting with forced_dispatch
When CFQ dispatches requests forcefully due to a barrier or changing iosched,
it runs through all cfqq's dispatching requests and then expires each queue.
However, it does not activate a cfqq before flushing its IOs resulting in
using stale values for computing slice_used.
This patch fixes it by calling activate queue before flushing reuqests from
each queue.

This is useful mostly for barrier requests because when the iosched is changing
it really doesnt matter if we have incorrect accounting since we're going to
break down all structures anyway.

We also now expire the current timeslice before moving on with the dispatch
to accurately account slice used for that cfqq.

Signed-off-by: Divyesh Shah<dpshah@google.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2010-04-09 09:29:57 +02:00
..
blk-barrier.c block: Honor the gfp_mask for alloc_page() in blkdev_issue_discard() 2009-12-29 08:53:54 +01:00
blk-cgroup.c cgroups: blkio subsystem as module 2010-03-12 15:52:36 -08:00
blk-cgroup.h cgroups: blkio subsystem as module 2010-03-12 15:52:36 -08:00
blk-core.c block: Consolidate phys_segment and hw_segment limits 2010-02-26 13:58:08 +01:00
blk-exec.c block: don't set REQ_NOMERGE unnecessarily 2009-04-28 07:37:33 +02:00
blk-integrity.c Driver core: Constify struct sysfs_ops in struct kobj_type 2010-03-07 17:04:49 -08:00
blk-ioc.c block: don't access jiffies when initialising io_context 2010-03-01 10:57:22 +01:00
blk-iopoll.c tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
blk-map.c block: Use accessor functions for queue limits 2009-05-22 23:22:54 +02:00
blk-merge.c block: Consolidate phys_segment and hw_segment limits 2010-02-26 13:58:08 +01:00
blk-settings.c block: Fix overrun in lcm() and move it to lib 2010-03-15 12:47:59 +01:00
blk-softirq.c generic-ipi: remove CSD_FLAG_WAIT 2009-02-25 14:13:44 +01:00
blk-sysfs.c Merge branch 'master' into for-linus 2010-03-19 08:05:10 +01: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 tree-wide: Assorted spelling fixes 2010-02-09 11:13:56 +01:00
cfq-iosched.c cfq-iosched: Fix the incorrect timeslice accounting with forced_dispatch 2010-04-09 09:29:57 +02:00
compat_ioctl.c block: Allow devices to indicate whether discarded blocks are zeroed 2009-12-03 09:24:48 +01:00
deadline-iosched.c block: convert to pos and nr_sectors accessors 2009-05-11 09:50:54 +02:00
elevator.c Block: Fix block/elevator.c elevator_get() off-by-one error 2010-04-02 08:41:14 +02:00
genhd.c block: Fix discard alignment calculation and printing 2010-01-11 14:29:19 +01:00
ioctl.c block: Allow devices to indicate whether discarded blocks are zeroed 2009-12-03 09:24:48 +01:00
Kconfig block: make CONFIG_BLK_CGROUP visible 2010-03-16 08:57:15 +01:00
Kconfig.iosched cgroups: blkio subsystem as module 2010-03-12 15:52:36 -08:00
Makefile blkio: Introduce blkio controller cgroup interface 2009-12-03 19:28:51 +01:00
noop-iosched.c block: get rid of elevator_t typedef 2008-12-29 08:29:50 +01:00
scsi_ioctl.c block/scsi_ioctl.c: quiet sparse noise 2009-11-04 09:10:33 +01:00