From d3e08b46b78e2d902b90456c6579b09df94780dd Mon Sep 17 00:00:00 2001 From: Rik van Riel Date: Tue, 16 Oct 2007 01:24:50 -0700 Subject: [PATCH] --- yaml --- r: 69616 b: refs/heads/master c: 32a4330d4156e55a4888a201f484dbafed9504ed h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/vmscan.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 62d649384095..6a69762b2b40 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8691f3a72f32f8b3ed535faa27140b3ae293c90b +refs/heads/master: 32a4330d4156e55a4888a201f484dbafed9504ed diff --git a/trunk/mm/vmscan.c b/trunk/mm/vmscan.c index a6e65d024995..bc58802663be 100644 --- a/trunk/mm/vmscan.c +++ b/trunk/mm/vmscan.c @@ -1371,7 +1371,13 @@ static unsigned long balance_pgdat(pg_data_t *pgdat, int order) temp_priority[i] = priority; sc.nr_scanned = 0; note_zone_scanning_priority(zone, priority); - nr_reclaimed += shrink_zone(priority, zone, &sc); + /* + * We put equal pressure on every zone, unless one + * zone has way too many pages free already. + */ + if (!zone_watermark_ok(zone, order, 8*zone->pages_high, + end_zone, 0)) + nr_reclaimed += shrink_zone(priority, zone, &sc); reclaim_state->reclaimed_slab = 0; nr_slab = shrink_slab(sc.nr_scanned, GFP_KERNEL, lru_pages);