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-2 mm/vmscan.c --- 25/mm/vmscan.c~zone-balancing-fix-2 2004-02-28 23:38:06.000000000 -0800 +++ 25-akpm/mm/vmscan.c 2004-02-28 23:38:06.000000000 -0800 @@ -829,8 +829,6 @@ shrink_caches(struct zone **zones, int p max_scan = to_reclaim * 2; ret += shrink_zone(zone, max_scan, gfp_mask, to_reclaim, total_scanned, ps); - if (ret >= nr_pages) - break; } return ret; } _