Messages in this thread | | | Date | Sat, 06 May 2006 18:32:54 +1000 | From | Nick Piggin <> | Subject | Re: assert/crash in __rmqueue() when enabling CONFIG_NUMA |
| |
Dave Hansen wrote:
> Ahhh. I hadn't made the ia64 connection. I wonder if it is worth > making CONFIG_HOLES_IN_ZONE say ia64 or something about vmem_map in it > somewhere. Might be worth at least a comment like this: > > + if (page_in_zone_hole(buddy)) /* noop on all but ia64 */ > + break; > + else if (page_zonenum(buddy) != page_zonenum(page)) > + break; > + else if (!page_is_buddy(buddy, order)) > break; /* Move the buddy up one level. */ > > BTW, wasn't the whole idea of discontig to have holes in zones (before > NUMA) without tricks like this? ;)
Yes.
I don't like the patch much, because all that logic should be moved into page_is_buddy where I put it (surely it is more readable not to have the checks spilling out -- a page which is not in the correct zone or is a "hole" is by definition not a buddy, right?)
So, I agree with adding the zone check if any architecture needs it. But it would be something under CONFIG_HOLES_IN_ZONE, and the arch needs to *either* align zones correctly (as they've always had to), or turn this option on.
Thanks for working at this, everyone.
-- SUSE Labs, Novell Inc. 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |