于 2011年08月19日 14:35, Bharata B Rao 写道:
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>
Libvirt already supported NUMA setting (both cpu and memory) on host yet, but yes, nothing for NUMA setting inside guest yet. We have talked once about the XML when adding the support for numa memory setting on host. And finally choosed to introduce new XML node for it with considering to add support for NUMA setting inside guest one day. The XML is: <numatune> <memory mode="strict" nodeset="1-4,^3"/> </numatune> So, personlly, I think the new XML should be inside "<numatune>" as a child node.
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 will cause we have 3 places for NUMA, one is <numatune>, the other is "<vcpu>", and this one. We can't change the "<vcpu>" as it was introduce much earlier than "<numatune>", but after <numatune> was introduced, I guess it's better to folder all NUMA stuffs in it.
This should result in a 2 node system with each node having 1 socket with 2 cores. Comments, suggestions ? Regards, Bharata.
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list