qemu: Prefer hugepages over mem source='file'
https://bugzilla.redhat.com/show_bug.cgi?id=1214369
Consider the following XML:
<memoryBacking>
<hugepages>
<page size='2048' unit='KiB' nodeset='1'/>
</hugepages>
<source type='file'/>
<access mode='shared'/>
</memoryBacking>
<numa>
<cell id='0' cpus='0-3' memory='512000' unit='KiB'/>
<cell id='1' cpus='4-7' memory='512000' unit='KiB'/>
</numa>
The following cmd line is generated:
-object
memory-backend-file,id=ram-node0,mem-path=/var/lib/libvirt/qemu/ram,
share=yes,size=524288000 -numa node,nodeid=0,cpus=0-3,memdev=ram-node0
-object
memory-backend-file,id=ram-node1,mem-path=/var/lib/libvirt/qemu/ram,
share=yes,size=524288000 -numa node,nodeid=1,cpus=4-7,memdev=ram-node1
This is obviously wrong as for node 1 hugepages should have been
used. The hugepages configuration is more specific than <source
type='file'/>.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2017-06-08 14:45:02 +00:00
|
|
|
LC_ALL=C \
|
|
|
|
PATH=/bin \
|
|
|
|
HOME=/home/test \
|
|
|
|
USER=test \
|
|
|
|
LOGNAME=test \
|
|
|
|
QEMU_AUDIO_DRV=none \
|
|
|
|
/usr/bin/qemu-system-i686 \
|
|
|
|
-name QEMUGuest1 \
|
|
|
|
-S \
|
|
|
|
-M pc \
|
|
|
|
-m size=4194304k,slots=16,maxmem=8388608k \
|
|
|
|
-smp 4,sockets=4,cores=1,threads=1 \
|
|
|
|
-object memory-backend-file,id=ram-node0,mem-path=/var/lib/libvirt/qemu/ram,\
|
|
|
|
share=no,size=1073741824,host-nodes=0-3,policy=bind \
|
|
|
|
-numa node,nodeid=0,cpus=0,memdev=ram-node0 \
|
|
|
|
-object memory-backend-file,id=ram-node1,prealloc=yes,\
|
|
|
|
mem-path=/dev/hugepages2M/libvirt/qemu/-1-QEMUGuest1,share=yes,size=1073741824,\
|
|
|
|
host-nodes=0-3,policy=bind \
|
|
|
|
-numa node,nodeid=1,cpus=1,memdev=ram-node1 \
|
|
|
|
-object memory-backend-file,id=ram-node2,mem-path=/var/lib/libvirt/qemu/ram,\
|
|
|
|
share=no,size=1073741824,host-nodes=0-3,policy=bind \
|
|
|
|
-numa node,nodeid=2,cpus=2,memdev=ram-node2 \
|
|
|
|
-object memory-backend-file,id=ram-node3,mem-path=/var/lib/libvirt/qemu/ram,\
|
|
|
|
share=no,size=1073741824,host-nodes=3,policy=bind \
|
|
|
|
-numa node,nodeid=3,cpus=3,memdev=ram-node3 \
|
|
|
|
-object memory-backend-file,id=memdimm0,prealloc=yes,\
|
|
|
|
mem-path=/dev/hugepages2M/libvirt/qemu/-1-QEMUGuest1,share=yes,size=536870912,\
|
|
|
|
host-nodes=0-3,policy=bind \
|
|
|
|
-device pc-dimm,node=1,memdev=memdimm0,id=dimm0,slot=0,addr=4294967296 \
|
|
|
|
-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
|
|
|
|
-nographic \
|
|
|
|
-nodefaults \
|
2017-06-26 14:40:39 +00:00
|
|
|
-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\
|
|
|
|
server,nowait \
|
|
|
|
-mon chardev=charmonitor,id=monitor,mode=readline \
|
qemu: Prefer hugepages over mem source='file'
https://bugzilla.redhat.com/show_bug.cgi?id=1214369
Consider the following XML:
<memoryBacking>
<hugepages>
<page size='2048' unit='KiB' nodeset='1'/>
</hugepages>
<source type='file'/>
<access mode='shared'/>
</memoryBacking>
<numa>
<cell id='0' cpus='0-3' memory='512000' unit='KiB'/>
<cell id='1' cpus='4-7' memory='512000' unit='KiB'/>
</numa>
The following cmd line is generated:
-object
memory-backend-file,id=ram-node0,mem-path=/var/lib/libvirt/qemu/ram,
share=yes,size=524288000 -numa node,nodeid=0,cpus=0-3,memdev=ram-node0
-object
memory-backend-file,id=ram-node1,mem-path=/var/lib/libvirt/qemu/ram,
share=yes,size=524288000 -numa node,nodeid=1,cpus=4-7,memdev=ram-node1
This is obviously wrong as for node 1 hugepages should have been
used. The hugepages configuration is more specific than <source
type='file'/>.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2017-06-08 14:45:02 +00:00
|
|
|
-no-acpi \
|
|
|
|
-boot c \
|
|
|
|
-usb \
|
|
|
|
-drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
|
|
|
|
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
|
|
|
|
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
|