mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-11-05 04:41:20 +00:00
0f8e7ae33a
numad is an user-level daemon that monitors NUMA topology and processes resource consumption to facilitate good NUMA resource alignment of applications/virtual machines to improve performance and minimize cost of remote memory latencies. It provides a pre-placement advisory interface, so significant processes can be pre-bound to nodes with sufficient available resources. More details: http://fedoraproject.org/wiki/Features/numad "numad -w ncpus:memory_amount" is the advisory interface numad provides currently. This patch add the support by introducing a new XML attribute for <vcpu>. e.g. <vcpu placement="auto">4</vcpu> <vcpu placement="static" cpuset="1-10^6">4</vcpu> The returned advisory nodeset from numad will be printed in domain's dumped XML. e.g. <vcpu placement="auto" cpuset="1-10^6">4</vcpu> If placement is "auto", the number of vcpus and the current memory amount specified in domain XML will be used for numad command line (numad uses MB for memory amount): numad -w $num_of_vcpus:$current_memory_amount / 1024 The advisory nodeset returned from numad will be used to set domain process CPU affinity then. (e.g. qemuProcessInitCpuAffinity). If the user specifies both CPU affinity policy (e.g. (<vcpu cpuset="1-10,^7,^8">4</vcpu>) and placement == "auto" the specified CPU affinity will be overridden. Only QEMU/KVM drivers support it now. See docs update in patch for more details.
54 lines
1.9 KiB
XML
54 lines
1.9 KiB
XML
<domain type='qemu'>
|
|
<name>QEMUGuest1</name>
|
|
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
|
<memory unit='KiB'>219100</memory>
|
|
<currentMemory unit='KiB'>219100</currentMemory>
|
|
<vcpu placement='static' cpuset='1-4,8-20,525'>1</vcpu>
|
|
<os>
|
|
<type arch='i686' machine='pc'>hvm</type>
|
|
<boot dev='hd'/>
|
|
</os>
|
|
<clock offset='utc'/>
|
|
<on_poweroff>destroy</on_poweroff>
|
|
<on_reboot>restart</on_reboot>
|
|
<on_crash>destroy</on_crash>
|
|
<devices>
|
|
<emulator>/usr/bin/qemu</emulator>
|
|
<disk type='block' device='disk'>
|
|
<source dev='/dev/HostVG/QEMUGuest1'/>
|
|
<target dev='hda' bus='ide'/>
|
|
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
|
|
</disk>
|
|
<controller type='usb' index='0'/>
|
|
<controller type='ide' index='0'/>
|
|
<controller type='virtio-serial' index='0' ports='16' vectors='4'/>
|
|
<controller type='virtio-serial' index='1'>
|
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
|
|
</controller>
|
|
<channel type='pty'>
|
|
<target type='virtio' name='org.linux-kvm.port.0'/>
|
|
</channel>
|
|
<channel type='pty'>
|
|
<target type='virtio' name='org.linux-kvm.port.foo'/>
|
|
<address type='virtio-serial' controller='1' bus='0'/>
|
|
</channel>
|
|
<channel type='pty'>
|
|
<target type='virtio' name='org.linux-kvm.port.bar'/>
|
|
<address type='virtio-serial' controller='1' bus='0' port='3'/>
|
|
</channel>
|
|
<channel type='pty'>
|
|
<target type='virtio' name='org.linux-kvm.port.wizz'/>
|
|
<address type='virtio-serial' controller='0' bus='0'/>
|
|
</channel>
|
|
<channel type='pty'>
|
|
<target type='virtio' name='org.linux-kvm.port.ooh'/>
|
|
<address type='virtio-serial' controller='1' bus='0'/>
|
|
</channel>
|
|
<channel type='pty'>
|
|
<target type='virtio' name='org.linux-kvm.port.lla'/>
|
|
<address type='virtio-serial' controller='2' bus='0'/>
|
|
</channel>
|
|
<memballoon model='virtio'/>
|
|
</devices>
|
|
</domain>
|