[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] numa=on broken



* Keir Fraser <Keir.Fraser@xxxxxxxxxxxx> [2007-03-30 13:06]:
> On 30/3/07 18:34, "Ryan Harper" <ryanh@xxxxxxxxxx> wrote:
> 
> > Looking a little deeper, it looks like in end_boot_allocator() we are
> > attempting to dynamically allocate memory for addition arrays in avail[]
> > and for the heap.  This uses xmalloc() which relies on
> > alloc_xenheap_pages() to work.  alloc_xenheap_pages() can't function
> > until end_boot_allocator() completes.  Prior to end_boot_alloctor(), one
> > needs to use alloc_boot_pages().
> > 
> > Any thoughts on how to proceed here?
> 
> Since the buddy allocators are initialised with memory from address zero
> upwards, I would expect everything to work fine if numa node zero always
> owns the first block of physical memory. This is because we statically
> allocate space for heap metadata for numa node zero (since even non-numa
> machines have a 'numa node zero'), so by the time you need to allocate
> memory for other numa nodes you're xenheap will be populated with memory.
> 
> So -- can we ensure that the node that owns low memory is node zero?

AFAIK, that is the case, look at the SRAT table:

(XEN) SRAT: Node 0 PXM 0 0-a0000
(XEN) SRAT: Node 0 PXM 0 0-e0000000
(XEN) SRAT: Node 1 PXM 1 100000000-200000000

-- 
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253   T/L: 678-9253
ryanh@xxxxxxxxxx



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.