Re: [Bug 8464] New: autoreconf: page allocation failure. order:2, mode:0x84020

From: Mel Gorman
Date: Sat May 12 2007 - 15:24:20 EST


On (12/05/07 20:58), Nicolas Mailhot didst pronounce:
> Le samedi 12 mai 2007 à 20:09 +0200, Nicolas Mailhot a écrit :
> > Le samedi 12 mai 2007 à 17:42 +0100, Mel Gorman a écrit :
> >
> > > order-2 (at least 19 pages but more are there) and higher pages were free
> > > and this was a NORMAL allocation. It should also be above watermarks so
> > > something screwy is happening
> > >
> > > *peers suspiciously*
> > >
> > > Can you try the following patch on top of the kswapd patch please? It is
> > > also available from http://www.csn.ul.ie/~mel/watermarks.patch
> >
> > Ok, testing now
>
> And this one failed testing too

And same thing, you have suitable free memory. The last patch was
wrong because I forgot the !in_interrupt() part which was careless
and dumb. Please try the following, again on top of the kswapd patch -
http://www.csn.ul.ie/~mel/watermarks-v2.patch

Thanks for all the testing, it's appreciated.

diff -rup -X /usr/src/patchset-0.6/bin//dontdiff linux-2.6.21-mm2-revertmd/mm/page_alloc.c linux-2.6.21-mm2-watermarks/mm/page_alloc.c
--- linux-2.6.21-mm2-revertmd/mm/page_alloc.c 2007-05-11 21:16:57.000000000 +0100
+++ linux-2.6.21-mm2-watermarks/mm/page_alloc.c 2007-05-12 20:20:19.000000000 +0100
@@ -1645,8 +1645,16 @@ nofail_alloc:
}

/* Atomic allocations - we can't balance anything */
- if (!wait)
+ if (!wait) {
+
+ /* Attempt to allocate ignoring watermarks */
+ page = get_page_from_freelist(gfp_mask, order,
+ zonelist, ALLOC_NO_WATERMARKS);
+ if (page)
+ goto got_pg;
+
goto nopage;
+ }

cond_resched();

--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/