linux/block
Corrado Zoccolo 749ef9f842 cfq: improve fsync performance for small files
Fsync performance for small files achieved by cfq on high-end disks is
lower than what deadline can achieve, due to idling introduced between
the sync write happening in process context and the journal commit.

Moreover, when competing with a sequential reader, a process writing
small files and fsync-ing them is starved.

This patch fixes the two problems by:
- marking journal commits as WRITE_SYNC, so that they get the REQ_NOIDLE
  flag set,
- force all queues that have REQ_NOIDLE requests to be put in the noidle
  tree.

Having the queue associated to the fsync-ing process and the one associated
 to journal commits in the noidle tree allows:
- switching between them without idling,
- fairness vs. competing idling queues, since they will be serviced only
  after the noidle tree expires its slice.

Acked-by: Vivek Goyal <vgoyal@redhat.com>
Reviewed-by: Jeff Moyer <jmoyer@redhat.com>
Tested-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Corrado Zoccolo <czoccolo@gmail.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
2010-09-20 15:24:50 +02:00
..
blk-barrier.c block: set up rq->rq_disk properly for flush requests 2010-08-07 18:52:41 +02:00
blk-cgroup.c blk-cgroup: cgroup changes for IOPS limit support 2010-09-16 08:42:58 +02:00
blk-cgroup.h blk-cgroup: cgroup changes for IOPS limit support 2010-09-16 08:42:58 +02:00
blk-core.c blkio: Core implementation of throttle policy 2010-09-16 08:42:52 +02:00
blk-exec.c block: remove wrappers for request type/flags 2010-08-07 18:17:56 +02:00
blk-integrity.c block/scsi: Provide a limit on the number of integrity segments 2010-09-10 20:50:10 +02:00
blk-ioc.c
blk-iopoll.c
blk-lib.c block: add secure discard 2010-08-12 08:43:30 -07:00
blk-map.c block: fix an address space warning in blk-map.c 2010-09-15 13:08:27 +02:00
blk-merge.c block/scsi: Provide a limit on the number of integrity segments 2010-09-10 20:50:10 +02:00
blk-settings.c block/scsi: Provide a limit on the number of integrity segments 2010-09-10 20:50:10 +02:00
blk-softirq.c
blk-sysfs.c block/scsi: Provide a limit on the number of integrity segments 2010-09-10 20:50:10 +02:00
blk-tag.c
blk-throttle.c blkio: Implementation of IOPS limit logic 2010-09-16 08:44:00 +02:00
blk-timeout.c block: ensure jiffies wrap is handled correctly in blk_rq_timed_out_timer 2010-04-21 17:42:08 +02:00
blk.h block/scsi: Provide a limit on the number of integrity segments 2010-09-10 20:50:10 +02:00
bsg.c
cfq-iosched.c cfq: improve fsync performance for small files 2010-09-20 15:24:50 +02:00
cfq.h blk-cgroup: Prepare the base for supporting more than one IO control policies 2010-09-16 08:42:04 +02:00
compat_ioctl.c block: add secure discard 2010-08-12 08:43:30 -07:00
deadline-iosched.c
elevator.c block: add secure discard 2010-08-12 08:43:30 -07:00
genhd.c block: Fix race during disk initialization 2010-09-16 20:36:36 +02:00
ioctl.c block, partition: add partition_meta_info to hd_struct 2010-09-15 16:13:18 +02:00
Kconfig blkio: Core implementation of throttle policy 2010-09-16 08:42:52 +02:00
Kconfig.iosched blk-cgroup: config options re-arrangement 2010-04-26 19:27:56 +02:00
Makefile blkio: Core implementation of throttle policy 2010-09-16 08:42:52 +02:00
noop-iosched.c
scsi_ioctl.c