On Wed, Nov 22, 2006 at 05:05:49PM +0100, Andre Noll wrote:
> Unfortunately, yes. I tried rc6, current git, and currrent git + David
> Rientjes' patch. They all show the same behaviour.
I must have missed that patch.
>
> > It's probably another bug in the memmap parsing rewrite (Mel cc'ed)
> > but the debugging information in the standard kernel unfortunately
> > doesn't give enough output to find out where it happens.
>
> Feel free to send me a debugging patch..
Here's one. Please send output (unless Mel finds the problem first..)
-Andi
Index: linux-2.6.19-rc6-hack/mm/page_alloc.c
===================================================================
--- linux-2.6.19-rc6-hack/mm/page_alloc.c
+++ linux-2.6.19-rc6-hack/mm/page_alloc.c
@@ -188,6 +188,10 @@ static inline int bad_range(struct zone
static void bad_page(struct page *page)
{
+ static int warned;
+ if (!warned) {
+ warned = 1;
+ printk(KERN_EMERG "page address %lx\n", page_address(page));
printk(KERN_EMERG "Bad page state in process '%s'\n"
KERN_EMERG "page:%p flags:0x%0*lx mapping:%p mapcount:%d
count:%d\n"
KERN_EMERG "Trying to fix it up, but a reboot is needed\n"
@@ -196,6 +200,7 @@ static void bad_page(struct page *page)
(unsigned long)page->flags, page->mapping,
page_mapcount(page), page_count(page));
dump_stack();
+ }
page->flags &= ~(1 << PG_lru |
1 << PG_private |
1 << PG_locked |
|