This test case is currently working but it uncovers existing issue
in our code that the generated QEMU commandline uses the default 1G
hugepage instead of the 2M hugepage specified for exact node.
The issue in our code is that for non-numa guests we take into account
only the first hugepage. This will be fixed as invalid configuration
since it doesn't make any sense to set default and specific hugepage
for non-numa guest.
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
.../hugepages-default-1G-nodeset-2M.args | 26 ++++++++++++++++
.../hugepages-default-1G-nodeset-2M.xml | 31 +++++++++++++++++++
tests/qemuxml2argvtest.c | 1 +
.../hugepages-default-1G-nodeset-2M.xml | 1 +
tests/qemuxml2xmltest.c | 1 +
5 files changed, 60 insertions(+)
create mode 100644 tests/qemuxml2argvdata/hugepages-default-1G-nodeset-2M.args
create mode 100644 tests/qemuxml2argvdata/hugepages-default-1G-nodeset-2M.xml
create mode 120000 tests/qemuxml2xmloutdata/hugepages-default-1G-nodeset-2M.xml
diff --git a/tests/qemuxml2argvdata/hugepages-default-1G-nodeset-2M.args
b/tests/qemuxml2argvdata/hugepages-default-1G-nodeset-2M.args
new file mode 100644
index 0000000000..d1f8974032
--- /dev/null
+++ b/tests/qemuxml2argvdata/hugepages-default-1G-nodeset-2M.args
@@ -0,0 +1,26 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-i686 \
+-name SomeDummyHugepagesGuest \
+-S \
+-machine pc,accel=tcg,usb=off,dump-guest-core=off \
+-m 1024 \
+-mem-prealloc \
+-mem-path /dev/hugepages1G/libvirt/qemu/-1-SomeDummyHugepagesGu \
+-smp 2,sockets=2,cores=1,threads=1 \
+-uuid ef1bdff4-27f3-4e85-a807-5fb4d58463cc \
+-display none \
+-no-user-config \
+-nodefaults \
+-chardev socket,id=charmonitor,\
+path=/tmp/lib/domain--1-SomeDummyHugepagesGu/monitor.sock,server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=control \
+-rtc base=utc \
+-no-shutdown \
+-no-acpi \
+-boot c \
+-usb
diff --git a/tests/qemuxml2argvdata/hugepages-default-1G-nodeset-2M.xml
b/tests/qemuxml2argvdata/hugepages-default-1G-nodeset-2M.xml
new file mode 100644
index 0000000000..eb0943b105
--- /dev/null
+++ b/tests/qemuxml2argvdata/hugepages-default-1G-nodeset-2M.xml
@@ -0,0 +1,31 @@
+<domain type='qemu'>
+ <name>SomeDummyHugepagesGuest</name>
+ <uuid>ef1bdff4-27f3-4e85-a807-5fb4d58463cc</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <currentMemory unit='KiB'>1048576</currentMemory>
+ <memoryBacking>
+ <hugepages>
+ <page size='1048576' unit='KiB'/>
+ <page size='2048' unit='KiB' nodeset='0'/>
+ </hugepages>
+ </memoryBacking>
+ <vcpu placement='static'>2</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-system-i686</emulator>
+ <controller type='usb' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x01' function='0x2'/>
+ </controller>
+ <controller type='pci' index='0' model='pci-root'/>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 54bcfdf3f7..273be61db3 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -974,6 +974,7 @@ mymain(void)
DO_TEST("hugepages-default", NONE);
DO_TEST("hugepages-default-2M", NONE);
DO_TEST("hugepages-default-system-size", NONE);
+ DO_TEST("hugepages-default-1G-nodeset-2M", NONE);
DO_TEST_FAILURE("hugepages-nodeset-nonexist",
QEMU_CAPS_DEVICE_PC_DIMM,
QEMU_CAPS_OBJECT_MEMORY_FILE,
diff --git a/tests/qemuxml2xmloutdata/hugepages-default-1G-nodeset-2M.xml
b/tests/qemuxml2xmloutdata/hugepages-default-1G-nodeset-2M.xml
new file mode 120000
index 0000000000..3d8eb7616e
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/hugepages-default-1G-nodeset-2M.xml
@@ -0,0 +1 @@
+../qemuxml2argvdata/hugepages-default-1G-nodeset-2M.xml
\ No newline at end of file
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 0b965d3401..958b955810 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -335,6 +335,7 @@ mymain(void)
DO_TEST("hugepages-default", NONE);
DO_TEST("hugepages-default-2M", NONE);
DO_TEST("hugepages-default-system-size", NONE);
+ DO_TEST("hugepages-default-1G-nodeset-2M", NONE);
DO_TEST("hugepages-numa-default-2M", NONE);
DO_TEST("hugepages-numa-default-dimm", NONE);
DO_TEST("hugepages-numa-nodeset", NONE);
--
2.17.1