• Andrew Morton's avatar
    [PATCH] vmscan: balancing fix · 210fe530
    Andrew Morton authored
    Revert a patch which went into 2.6.8-rc1.  The changelog for that patch was:
    
      The shrink_zone() logic can, under some circumstances, cause far too many
      pages to be reclaimed.  Say, we're scanning at high priority and suddenly
      hit a large number of reclaimable pages on the LRU.
    
      Change things so we bale out when SWAP_CLUSTER_MAX pages have been
      reclaimed.
    
    Problem is, this change caused significant imbalance in inter-zone scan
    balancing by truncating scans of larger zones.
    
    Suppose, for example, ZONE_HIGHMEM is 10x the size of ZONE_NORMAL.  The zone
    balancing algorithm would require that if we're scanning 100 pages of
    ZONE_HIGHMEM, we should scan 10 pages of ZONE_NORMAL.  But this logic will
    cause the scanning of ZONE_HIGHMEM to bale out after only 32 pages are
    reclaimed.  Thus effectively causing smaller zones to be scanned relatively
    harder than large ones.
    
    Now I need to remember what the workload was which caused me to write this
    patch originally, then fix it up in a different way...
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    210fe530
vmscan.c 35.9 KB