Messages in this thread |  | | | Date | Mon, 23 Feb 2004 00:59:48 -0800 | | From | Andrew Morton <> | | Subject | Re: [PATCH] vm-fix-all_zones_ok (was Re: 2.6.3-mm3) |
| |
Nick Piggin <piggin@cyberone.com.au> wrote: > > > > Nick Piggin wrote: > > > > > Humph. OK you're right. > > > Aha but you've broken something!
I'm a microsoft spy.
> Tell me I'm still useful.
You're still useful.
> 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; > + }
I wouldna spotted that in a million years. That all_zones_ok code was a bitch to test and really needs retesting.
We used to have <= in there actually:
to_reclaim = zone->pages_high-zone->free_pages; if (to_reclaim <= 0) continue; We've never clearly defined whether pages_high == free_pages means the zone is under limits. According to __alloc_pages() it means that the zone is not under limits, so you've fixed two bugs there.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |