lkml.org 
[lkml]   [2004]   [Feb]   [23]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateMon, 23 Feb 2004 00:59:48 -0800
FromAndrew Morton <>
SubjectRe: [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/

\
 
 \ /
  Last update: 2005-03-22 13:01    [W:0.645 / U:0.020 seconds]
©2003-2008 Jasper Spaans