Re: [PATCH 5/6] Have ia64 use add_active_range() and free_area_init_nodes

From: Nick Piggin
Date: Mon May 15 2006 - 20:37:31 EST


KAMEZAWA Hiroyuki wrote:

On Mon, 15 May 2006 11:19:27 +0100
Andy Whitcroft <apw@xxxxxxxxxxxx> wrote:


Recently arrived? Over a year ago with the no-buddy-bitmap patches,
right? Just checking because I that's what I'm assuming broke it...

Yep, sorry I forget I was out of the game for 6 months! And yes that
was when the requirements were altered.


When no-bitmap-buddy patches was included,

1. bad_range() is not covered by CONFIG_VM_DEBUG. It always worked.
==
static int bad_range(struct zone *zone, struct page *page)
{
if (page_to_pfn(page) >= zone->zone_start_pfn + zone->spanned_pages)
return 1;
if (page_to_pfn(page) < zone->zone_start_pfn)
return 1;
==
And , this code
==
buddy = __page_find_buddy(page, page_idx, order);

if (bad_range(zone, buddy))
break;
==

checked whether buddy is in zone and guarantees it to have page struct.


Ah, my mistake indeed. Sorry.

But clean-up/speed-up codes vanished these checks. (I don't know when this occurs)
Sorry for misses these things.


I think if anything they should be moved into page_is_buddy, however page_to_pfn
is expensive on some architectures, so it is something we want to be able to opt
out of if we do the correct alignment.

--
Send instant messages to your online friends http://au.messenger.yahoo.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/