lkml.org 
[lkml]   [2006]   [May]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: assert/crash in __rmqueue() when enabling CONFIG_NUMA
From
Date
On Fri, 2006-05-05 at 10:50 -0400, Bob Picco wrote:
> Dave Hansen wrote: [Fri May 05 2006, 10:33:10AM EDT]
> > The page_zonenum() checks look good, but I'm not sure I understand the
> > page_in_zone_hole() part. If a page is in a hole in a zone, it will
> > still have a valid mem_map entry, right? It should also never have been
> > put into the allocator, so it also won't ever be coalesced.
> This has always been subtle and not too revealing. It probably should
> have a comment. The page_in_zone_hole check is for ia64
> VIRTUAL_MEM_MAP. You might compute a page structure which is in a hole not
> backed by memory; an unallocated page which covers pages structures.
> VIRTUAL_MEM_MAP uses a contiguous virtual region with virtual space holes
> not backed by memory. Take a look at ia64_pfn_valid.

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? ;)

-- Dave

-
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/

\
 
 \ /
  Last update: 2006-05-05 17:01    [W:0.066 / U:3.092 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site