Re: [uClinux-dev] Coldfire 5271 hitting BUG_ON(page_count(buddy)!= 0);

From: Greg Ungerer
Date: Thu Jun 25 2009 - 23:21:36 EST


Hi Lennart,

Lennart Sorensen wrote:
I am hitting a memory management bug and I would love some hints as to
how to track down the bug and fix it.

The bug hit is line 423 of page_alloc.c which is:

BUG_ON(page_count(buddy) != 0);

The function it is part of is:

static inline int page_is_buddy(struct page *page, struct page *buddy,
int order)
{
if (!pfn_valid_within(page_to_pfn(buddy)))
return 0;

if (page_zone_id(page) != page_zone_id(buddy))
return 0;

if (PageBuddy(buddy) && page_order(buddy) == order) {
BUG_ON(page_count(buddy) != 0);
return 1;
}
return 0;
}

I am seeing this both with 2.6.29.1 and 2.6.30 so far. I unfortunately
haven't poked much at the memory management code, so I am not even sure
what this is supposed to be doing. The cpu us a coldfire 5271.

I also see crashes causing the kernel to dump lots of hex values.
Building the kernel with debug enabled unfortunately seems to move things
around enough to make it just lock up instead without any output.

What are you doing at the time you get this?
Or is it at bootup?

Regards
Greg


------------------------------------------------------------------------
Greg Ungerer -- Principal Engineer EMAIL: gerg@xxxxxxxxxxxx
SnapGear Group, McAfee PHONE: +61 7 3435 2888
825 Stanley St, FAX: +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia WEB: http://www.SnapGear.com
--
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/