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

Greg Ungerer gerg at snapgear.com
Thu Jun 25 23:21:25 EDT 2009


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 at snapgear.com
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



More information about the uClinux-dev mailing list