Messages in this thread Patch in this message | | | Date | Sat, 12 May 2007 20:24:08 +0100 | Subject | Re: [Bug 8464] New: autoreconf: page allocation failure. order:2, mode:0x84020 | From | (Mel Gorman) |
| |
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |