Re: __alloc_pages: 0-order allocation failed

Andrea Arcangeli (andrea@suse.de)
Wed, 26 Sep 2001 01:05:16 +0200


On Tue, Sep 25, 2001 at 06:25:10PM -0300, Marcelo Tosatti wrote:
>
>
> On Wed, 26 Sep 2001, Andrea Arcangeli wrote:
>
> > On Mon, Sep 24, 2001 at 09:38:24AM -0300, Marcelo Tosatti wrote:
> > > --- linux.orig/mm/vmscan.c Mon Sep 24 10:36:40 2001
> > > +++ linux/mm/vmscan.c Mon Sep 24 10:54:01 2001
> > > @@ -567,6 +567,9 @@
> > > if (nr_pages <= 0)
> > > return 1;
> > >
> > > + if (nr_pages < SWAP_CLUSTER_MAX)
> > > + ret |= 1;
> > > +
> >
> > too much permissive (vm-tweaks-1 does something similar but not that
> > permissive)
>
> Andrea,
>
> Does vm-tweaks-1 fixes the current problem we're seeing?

it seems no by reading the last email, however I'm not seeing any
problem, the DEBUG_GFP will tell us where the problem cames from,
pssobly it's a highmem thing since I never reproduced anything bad here.
But the point is that the above isn't going to be a right fix anyways.

> Also, we have to make sure _all_ progress accounting is being done
> correctly (i/dcache, etc). I'll make sure that happens as soon as the OOM
> problem is gone.
>
> > > ret |= swap_out(priority, classzone, gfp_mask, SWAP_CLUSTER_MAX << 2);
> > > } while (--priority);
> > >
> > > --- linux.orig/mm/page_alloc.c Mon Sep 24 10:36:40 2001
> > > +++ linux/mm/page_alloc.c Mon Sep 24 10:44:12 2001
> > > @@ -400,7 +400,7 @@
> > > if (!z)
> > > break;
> > >
> > > - if (zone_free_pages(z, order) > z->pages_high) {
> > > + if (zone_free_pages(z, order) > z->pages_min) {
> >
> > that breaks oom detection.
>
> Why?

the only point such code exists is to try to kill only one task, if the
killed task was the right one, such code can be dropped and still the
machine must not fail allocation unless truly oom, so any change there
cannot obviously fix anything related to early-oom-by-mistake.

Andrea
-
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/