|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-devel
[Xen-devel] Re: [PATCH 2/6][RESEND] xen: Add NUMA support to Xen
 
On 12 May 2006, at 16:12, Ryan Harper wrote:
 
Then in
init_domheap_pages(), there are no calls to memguard, just
work to set up the range for a call to init_heap_pages().  I'm
not sure if I need to use memguard for marking the chunk
boundaries, or if just reserving chunk boundaries that weren't
already on a MAX_ORDER edge via map_alloc() is sufficient.
 
 
 
 Just reserving is sufficient. memguard is a debug-build aid for xen 
heap only.
 
Also, I didn't see a way to ensure reserved pages aren't freed via a
call to init_heap_pages() which just clears out a range of bits in
the alloc map.  Should we be worried about that?
 
 
 
 Well, in theory. It's only called in one place though right now, and 
probably with a physical range below 128MB in all cases. So it's 
unlikely to straddle a NUMA boundary.
 Another comment on this patch (2/2): page_to_node() should be defined 
in numa.c (for now) rather than page_alloc.c (where it will never 
belong). I know you also directly scan the chunk array to find 
boundaries to reserve: perhaps for now we could have 
end_boot_allocator() call init_heap_pages() for each page, then 
initheap_pages() can compare page_to_node(page) with 
page_to_node(page-1). If they differ and the latter is not -1 and page 
is not on a MAX_ORDER boundary, then you do not free the page to the 
buddy allocator.
 Clearly this will be crappily slow, but it's only used at boot time and 
as long as it's not *too* bad (which it certainly won't be for short 
chunk lists) then it'll do until we improve things (probably with a 
fast constant-time page_to_node() implementation).
 The main thing here is to get the interfaces right, and the current 
export of memory_chunk structure and array is definitely not right. I'd 
like it to remain hidden in numa.c/srat.c as it is on Linux, or at 
least hidden in arch/x86. It also lets us stub out page_to_node() 
easily for ia64, and breaks them a whole lot less.
 -- Keir
 
Attached is what the current working patch looks like.  Let me know if
 this is more to your liking.  If so, I'll re-spin the whole patchset 
and
test it across the set of test machines we have (NUMA and non-NUMA).
 
 
 
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 
 |   
 
 | 
    | 
  
  
    |   | 
    |