[libvirt] [RFC] NUMA topology specification

Bharata B Rao bharata.rao at gmail.com
Fri Aug 19 06:35:43 UTC 2011


Hi,

qemu supports specification of NUMA topology on command line using -numa option.

-numa node[,mem=size][,cpus=cpu[-cpu]][,nodeid=node]

I see that there is no way to specify such NUMA topology in libvirt
XML. Are there plans to add support for NUMA topology specification ?
Is anybody already working on this ? If not I would like to add this
support for libvirt.

Currently the topology specification available in libvirt ( <topology
sockets='1' cores='2' threads='1'/>) translates to "-smp
sockets=1,cores=2,threads=1" option of qemu. There is not equivalent
in libvirt that could generate -numa command line option of qemu.

How about something like this ? (OPTION 1)

<cpu>
...
<numa nodeid='node' cpus='cpu[-cpu]' mem='size'>
...
</cpu>

And we could specify multiple such lines, one for each node.

-numa and -smp options in qemu do not work all that well since they
are parsed independent of each other and one could specify a cpu set
with -numa option that is incompatible with sockets,cores and threads
specified on -smp option. This should be fixed in qemu, but given that
such a problem has been observed, should libvirt tie the specification
of numa and smp (sockets,threads,cores) together so that one is forced
to specify only valid combinations of nodes and cpus in libvirt ?

May be something like this: (OPTION 2)

<cpu>
...
<topology sockets='1' cores='2' threads='1' nodeid='0' cpus='0-1' mem='size'>
<topology sockets='1' cores='2' threads='1' nodeid='1' cpus='2-3' mem='size'>
...
</cpu

This should result in a 2 node system with each node having 1 socket
with 2 cores.

Comments, suggestions ?

Regards,
Bharata.
-- 
http://bharata.sulekha.com/blog/posts.htm, http://raobharata.wordpress.com/




More information about the libvir-list mailing list