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

RE: [Xen-users] Xen and distributing memory

On 26 Feb 2007 at 13:38, Petersson, Mats wrote:

> > -----Original Message-----
> > From: xen-users-bounces@xxxxxxxxxxxxxxxxxxx 
> > [mailto:xen-users-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of 
> > Ulrich Windl
> > Sent: 22 February 2007 08:31
> > To: xen-users@xxxxxxxxxxxxxxxxxxx
> > Subject: Re: [Xen-users] Xen and distributing memory
> > 
> > On 21 Feb 2007 at 11:11, Marduk wrote:
> > 
> > [...]
> > > I'm trying to understand how Xen's memory balloon driver works.
> > [...]
> > 
> > That reminds me of: Should XEN maintain multiple memory zones 
> > for NUMA, and then 
> > extend the memory interface to request memory from a specific 
> > memory zone? I think 
> > recent Linux kernels can even migrate memory pages from one 
> > zone to another 
> > (probably if a process has a sub-optimal page allocated, are 
> > more suitable page 
> > can be assigned instead).
> At present Xen doesn't support NUMA, but there's been work (patches have
> been submitted but not accepted) to support different memory regions
> (zones or whatever one might call them) for different locations in the
> machine. 
> The first step of this would be to give limited set of processors "local
> memory" when assigning domain-memory. 
> A step further would be to extend the information to give the guest-OS
> information abuout which socket has which areas of memory, so that the
> kernel can have a good idea of where to allocate memory. Of course, this
> doesn't solve all problemns. Someone (Emmanuel Ackaroy(sp?) I think)
> gave the following example: one process starts, allocating a large chunk
> of memory, fills this memory with data and spawns another 3 processes,
> doing some heavy calculation work on the previously allocated memory.
> Without direct interfaces to allocate memory to a particular processor,
> it's not possible for the OS to allocate that memory correctly... :-(

The strategy would be to allocate the memory for the CPU requesting it. Then 
children would default to run on the same CPU because of the shared memory. The 
master process would be fine with heavy computation. The question is which 
would the children get? If they get memory from another zone, the scheduling 
preference would be to use a CPU more local to that memory than the current 
That's what I understood.

> Of course, a further complication is if we have 2 VCPU's but 4
> physically viable CPU's in the system. Which CPU's memory do we allocate
> to which processor?

Assuming that every virtual CPU is physical in the end, CPU-local RAM should be 
allocated. That requires that the kernel do know a bit more about the hardware 
Dom0. More than now...


Xen-users mailing list



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