• Nick Piggin's avatar
    [PATCH] as: cooperating processes · f5b3db00
    Nick Piggin authored
    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: default avatarNick Piggin <npiggin@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    f5b3db00
as-iosched.c 49.4 KB