On 05/12/2011 05:01 AM, Osier Yang wrote:
>> The new XML is like:
>>
>> <numatune>
>> <memory model="interleave" nodeset="+0-4,8-12"/>
>> <numatune>
>>
> Compatibility with numactl syntax is an explicit non-goal.
> numactl is just one platform specific impl. Compatibility
> with numactl syntax is of no interest to the ESX or VirtualBox
> drivers. The libvirt NUMA syntax should be using other
> existing libvirt XML as the design compatibility target.
Hi, Dan
The syntax is actually not of numactl, but of libnuma, it
provides API numa_parse_nodestring() to parse the syntax,
The point we're trying to make is that the XML should _not_ match
libnuma, but should match <vcpu cpuset=...>. That is, the XML should
use 0-4,^3 to mean 0, 1, 2, 4; and then we need an internal translation
routine that converts ^ to + before calling libnuma functions.
The fact that we use libnuma under the hood is an implementation detail;
in the future we may find it easier to use some other mechanism to get
the same semantic effect, and that other mechanism may have yet some
third syntax. Therefore, it is better for libvirt to present consistent
syntax for all of its cpuset parsing, rather than to have two different
cpuset spellings based on what under-the-hood capability it is targetting.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org