lkml.org 
[lkml]   [2008]   [Jul]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [problem] raid performance loss with 2.6.26-rc8 on 32-bit x86 (bisected)
    From
    Date

    On Wed, 2008-07-02 at 22:00 -0700, Mel Gorman wrote:

    > Subject: [PATCH] Do not overwrite nr_zones on !NUMA when initialising zlcache_ptr
    >
    > With the two-zonelist patches on !NUMA machines, there really is only one
    > zonelist as __GFP_THISNODE is meaningless. However, during initialisation, the
    > assumption is made that two zonelists exist when initialising zlcache_ptr. The
    > result is that pgdat->nr_zones is always 0. As kswapd uses this value to
    > determine what reclaim work is necessary, the result is that kswapd never
    > reclaims. This causes processes to stall frequently in low-memory situations
    > as they always direct reclaim. This patch initialises zlcache_ptr correctly.
    >
    > Signed-off-by: Mel Gorman <mel@csn.ul.ie>
    > ---
    > page_alloc.c | 1 -
    > 1 file changed, 1 deletion(-)
    >
    > diff -rup -X /usr/src/patchset-0.6/bin//dontdiff linux-2.6.26-rc8-clean/mm/page_alloc.c linux-2.6.26-rc8-fix-kswapd-on-numa/mm/page_alloc.c
    > --- linux-2.6.26-rc8-clean/mm/page_alloc.c 2008-06-24 18:58:20.000000000 -0700
    > +++ linux-2.6.26-rc8-fix-kswapd-on-numa/mm/page_alloc.c 2008-07-02 21:49:09.000000000 -0700
    > @@ -2328,7 +2328,6 @@ static void build_zonelists(pg_data_t *p
    > static void build_zonelist_cache(pg_data_t *pgdat)
    > {
    > pgdat->node_zonelists[0].zlcache_ptr = NULL;
    > - pgdat->node_zonelists[1].zlcache_ptr = NULL;
    > }
    >
    > #endif /* CONFIG_NUMA */
    >

    Bug squished.

    # for i in `seq 1 5`; do dd if=/dev/zero of=/dev/md0 bs=1024k count=2048; done
    2048+0 records in
    2048+0 records out
    2147483648 bytes (2.1 GB) copied, 7.73352 s, 278 MB/s
    2048+0 records in
    2048+0 records out
    2147483648 bytes (2.1 GB) copied, 7.6845 s, 279 MB/s
    2048+0 records in
    2048+0 records out
    2147483648 bytes (2.1 GB) copied, 7.74428 s, 277 MB/s
    2048+0 records in
    2048+0 records out
    2147483648 bytes (2.1 GB) copied, 7.65959 s, 280 MB/s
    2048+0 records in
    2048+0 records out
    2147483648 bytes (2.1 GB) copied, 7.73107 s, 278 MB/s

    Tested-by: Dan Williams <dan.j.williams@intel.com>





    \
     
     \ /
      Last update: 2008-07-03 10:55    [W:0.021 / U:92.756 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site