kernel-ark/drivers/block
Nick Piggin f5b3db0017 [PATCH] as: cooperating processes
Introduce the notion of cooperating processes (those that submit requests
close to one another), and use these statistics to make better choices about
whether or not to do anticipatory waiting.

Help and analysis from Seetharami Seelam <seelam@cs.utep.edu>

Performance testing from Seelam:

I set up my system and executed a couple of tests that I used for OLS.  I
tested with AS, cooperative process patch merged in -mm tree (which I called
Nick, below) and the cooperative patch with modifications to as_update_iohist
(which I called Seelam).

I used a dual-processor (2.28GHz Pentium 4 Xeon) system, with 1 GB main memory
and 1 MB L2 cache, running Linux 2.6.9.  Only a single processor is used for
the experiments.  I used 7.2K RPM Maxtor 10GB drive configured with ext2 file
system.

Experiment 1 (ex1) consists of reading  one Linux source trees using

  find . -type f -exec cat '{}' ';' > /dev/null.

Experiment 2 (ex2) consists of reading two disjoint Linux source trees
using

  find . -type f -exec cat '{}' ';' > /dev/null.

Experiment 3 (ex3) consists of streaming read of a 2GB file in the background
and 1 instance of the chunk reads in Experiment 1.

Timings for reading the Linux source are shown below:

             AS                     Nick          Seelam
ex1:      0m25.813s               0m27.859s      0m27.640s
ex2:      1m11.468s               1m13.918s      1m5.869s
ex3:      81m44.352s             10m38.572s      6m47.994s

The difference between the numbers in Experiment 3 must be due to the code in
as_update_iohist.  (akpm: that's not part of this patch.  So this patch is
"Nick").

Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-07 07:53:43 -08:00
..
aoe [BLOCK] aoe: update for combined io statistics 2005-11-01 09:54:23 +01:00
paride
acsi_slm.c
acsi.c
amiflop.c
as-iosched.c [PATCH] as: cooperating processes 2005-11-07 07:53:43 -08:00
ataflop.c
cciss_cmd.h
cciss_scsi.c
cciss_scsi.h
cciss.c
cciss.h
cfq-iosched.c [PATCH] Fix on-the-fly switch from cfq i/o scheduler 2005-10-31 07:41:28 -08:00
cpqarray.c
cpqarray.h
cryptoloop.c
DAC960.c
DAC960.h
deadline-iosched.c
elevator.c [PATCH] blk: fix dangling pointer access in __elv_add_request 2005-11-01 21:58:06 -08:00
floppy.c
genhd.c [BLOCK] Unify the seperate read/write io stat fields into arrays 2005-11-01 09:26:16 +01:00
ida_cmd.h
ida_ioctl.h
ioctl.c
Kconfig
Kconfig.iosched
ll_rw_blk.c [BLOCK] Unify the seperate read/write io stat fields into arrays 2005-11-01 09:26:16 +01:00
loop.c
Makefile
nbd.c
noop-iosched.c [PATCH] noop-iosched: avoid corrupted request merging 2005-10-31 07:46:28 -08:00
pktcdvd.c
ps2esdi.c
rd.c
scsi_ioctl.c
smart1,2.h
swim3.c
swim_iop.c
sx8.c
ub.c
umem.c
viodasd.c merge filename and modify references to iseries/vio.h 2005-11-02 15:13:57 +11:00
xd.c
xd.h
z2ram.c