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

RE: [Xen-devel] [PATCH 00/11] PV NUMA Guests



Keir Fraser wrote:
> I would like Acks from the people working on HVM NUMA for this patch
> series. At the very least it would be nice to have a single user
> interface for setting this up, regardless of whether for a PV or HVM
> guest. Hopefully code in the toolstack also can be shared. So I'm
Yes, I strongly agree we should share one interterface, e.g., The 
XENMEM_numa_op hypercalls implemented by Dulloor could be re-used in the hvm 
numa case and some parts of the toolstack could be shared, I think. I also 
replied in another thead and supplied some similarity I found in 
Andre/Dulloor's patches.

> cc'ing Dexuan and Andre, as I know they are involved in the HVM NUMA
> work. 
> 
>  Thanks,
>  Keir
> 
> On 04/04/2010 20:30, "Dulloor" <dulloor@xxxxxxxxx> wrote:
> 
>> The set of patches implements virtual NUMA-enlightenment to support
>> NUMA-aware PV guests. In more detail, the patch implements the
>> following : 
>> 
>> * For the NUMA systems, the following memory allocation strategies
>>  are implemented :
>> - CONFINE : Confine the VM memory allocation to a
>> single node. As opposed to the current method of doing this in
>> python, the patch implements this in libxc(along with other
>> strategies) and with assurance that the memory actually comes from
>> the selected node. 
> > - STRIPE : If the VM memory doesn't fit in a
>> single node and if the VM is not compiled with guest-numa-support,
>> the memory is allocated striped across a selected max-set of nodes.
>> - SPLIT : If the VM memory doesn't fit in a single node and if the VM
>> is compiled with guest-numa-support, the memory is allocated split
>> (equally for now) from the min-set of nodes. The  VM is then made
>> aware of this NUMA allocation (virtual NUMA enlightenment).
>> -DEFAULT : This is the existing allocation scheme.
>> 
>> * If the numa-guest support is compiled into the PV guest, we add
>> numa-guest-support to xen features elfnote. The xen tools use this to
>> determine if SPLIT strategy can be applied.
>> 
I think this looks too complex to allow a real user to easily determine which 
one to use...
About the CONFINE stragegy -- looks this is not a useful usage model to me -- 
do we really think it's a typical usage model to ensure a VM's memory can only 
be allocated on a specified node?
The definitions of STRIPE and SPLIT also doesn't sound like typical usage 
models to me. 
Why must tools know if the PV kernel is built with guest numa support or not? 
If a user configures guest numa to "on" for a pv guest, the tools can supply 
the numa info to PV kernel even if the pv kernel is not built with guest numa 
support -- the pv kernel will neglect the info safely;
If a user configures guest numa to "off" for a pv guest and the tools don't 
supply the numa info to PV kernel, and if the pv kernel is built with guest 
numa support, the pv kernel can easily detect this by your new hypercall and 
will not enable numa.

When a user finds the computing capability of a single node can't satisfy the 
actual need and hence wants to use guest numa, since the user has specified the 
amount of guest memory and the number of vcpus in guest config file, I think 
the user only needs to specify how many guest nodes (the "guestnodes" option in 
Andre's patch) the guest will see, and the tools and the hypervisor should 
co-work to distribute guest memory and vcpus uniformly among the guest nodes(I 
think we may not want to support non-uniform nodes as that doesn't look like a 
typical usage model) -- of course, maybe a specified node doesn't have the 
expected amount of memory -- in this case, the guest can continue to run with a 
slower speed (we can print a warning message to the user); or, if the user does 
care about predictable guest performance, the guest creation should fail.

How do you like this? My thought is we can make things simple in the first 
step. :-)

Thanks,
-- Dexuan

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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