[PATCH] vm-fix-all_zones_ok (was Re: 2.6.3-mm3)

Nick Piggin
2004-02-23T08:48:15Z

[-- Attachment #1: Type: text/plain, Size: 112 bytes --]

Nick Piggin wrote:

>
> Humph. OK you're right.

Aha but you've broken something! Tell me I'm still useful.

[-- Attachment #2: vm-fix-all_zones_ok.patch --]
[-- Type: text/plain, Size: 799 bytes --]

linux-2.6-npiggin/mm/vmscan.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)

diff -puN mm/vmscan.c~vm-fix-all_zones_ok mm/vmscan.c
--- linux-2.6/mm/vmscan.c~vm-fix-all_zones_ok 2004-02-23 19:44:06.000000000 +1100
+++ linux-2.6-npiggin/mm/vmscan.c 2004-02-23 19:45:10.000000000 +1100
@@ -1008,10 +1008,12 @@ static int balance_pgdat(pg_data_t *pgda

if (nr_pages) /* Software suspend */
to_reclaim = min(to_free, SWAP_CLUSTER_MAX*8);
- else /* Zone balancing */
+ else { /* Zone balancing */
to_reclaim = zone->reclaim_batch;
+ if (zone->pages_high < zone->free_pages)
+ all_zones_ok = 0;
+ }

- all_zones_ok = 0;
zone->temp_priority = priority;
reclaimed = shrink_zone(zone, GFP_KERNEL,
to_reclaim, &nr_scanned, ps, priority);

_