We currently have a problem with the balancing of reclaim between zones: much more reclaim happens against highmem than against lowmem. This patch partially fixes this by changing the direct reclaim path so it does not bale out of the zone walk after having reclaimed sufficient pages from highmem: go on to reclaim from lowmem regardless of how many pages we reclaimed from lowmem. --- mm/vmscan.c | 2 -- 1 files changed, 2 deletions(-) diff -puN mm/vmscan.c~zone-balancing-fix mm/vmscan.c --- 25/mm/vmscan.c~zone-balancing-fix 2004-02-22 13:13:18.000000000 -0800 +++ 25-akpm/mm/vmscan.c 2004-02-22 13:13:18.000000000 -0800 @@ -878,8 +878,6 @@ shrink_caches(struct zone **zones, int p ret += shrink_zone(zone, gfp_mask, to_reclaim, &nr_scanned, ps, priority); *total_scanned += nr_scanned; - if (ret >= nr_pages) - break; } return ret; } _