[libvirt] [RFC PATCH 0/3] Guest NUMA topology support - v0

Bharata B Rao bharata at linux.vnet.ibm.com
Fri Oct 14 04:13:13 UTC 2011


On Thu, Oct 13, 2011 at 12:53:22PM +0100, Daniel P. Berrange wrote:
> On Mon, Oct 03, 2011 at 03:28:44PM +0530, Bharata B Rao wrote:
> > Hi,
> > 
> > I discussed the possibilities of adding NUMA topology XML specification
> > support for guests here some time back. Since my latest proposal
> > (http://permalink.gmane.org/gmane.comp.emulators.libvirt/44626)
> > didn't get any response, I am posting a prototype implementation
> > that supports specifying NUMA topology for QEMU guests.
> > 
> > - The implementation is based on the last proposal I listed above.
> 
> So we're basically only allowing a flat NUMA toplogy
> 
>      <numa>
>         <node  cpus='0,2,4,6' mems='1024>
>         <node  cpus='8,10,12,14' mems='1024>
>         <node  cpus='1,3,5,7' mems='1024'>
>         <node  cpus='9,11,13,15' mems='1024'>
>      </numa>
> 
> which mirrors what QEMU allows currently. Should we need
> to support a hierarchy, we can trivially extend this
> syntax in a backwards compatible fashion
> 
>      <numa>
>         <node>
>           <node  cpus='0,2,4,6' mems='1024>
>           <node  cpus='8,10,12,14' mems='1024>
>         </node>
>        <node>
>           <node  cpus='1,3,5,7' mems='1024'>
>           <node  cpus='9,11,13,15' mems='1024'>
>        </node>
>      </numa>
> 
> so I think this limitation is OK for now.

Fine then.

> 
> In the virsh capabilities XML, we actually use the
> word 'cell' rather than 'node'. I think it might
> be preferrable to be consistent and use 'cell' here
> too.

I feel NUMA node sounds more familiar than NUMA cell.
But if libvirt prefers cell, we can go with cell I suppose.

> 
> > - The implementation is for QEMU only.
> 
> That's fine.
> 
> > - The patchset has gone through extremely light testing and I have
> >   just tested booting a 2 socket 2 core 2 thread QEMU guest.
> > - I haven't really bothered to cover all the corner cases and haven't
> >   run libvirt tests after this patchset. For eg, there is no code
> >   to validate if the CPU combination specified by <topology> and
> >   <numa> match with each other. I plan to cover all these after we
> >   freeze the specification itself.
> 
> ok
> 
> 
> WRT the question about CPU enumeration order in the URL quoted
> above. I don't think it matters whether we enumerate CPUs in the
> same order as real hardware. The key thing is that we just choose
> an order, document what *our* enumeration order is, and then stick
> to it forever.

Ok fine.

Regards,
Bharata.




More information about the libvir-list mailing list