9c6c51
From b1ad796106c4f1e889312c67164cce53b01cbc17 Mon Sep 17 00:00:00 2001
9c6c51
Message-Id: <b1ad796106c4f1e889312c67164cce53b01cbc17@dist-git>
9c6c51
From: Pavel Hrdina <phrdina@redhat.com>
9c6c51
Date: Mon, 13 Aug 2018 19:21:50 +0200
9c6c51
Subject: [PATCH] tests: introduce hugepages-default-1G-nodeset-2M
9c6c51
MIME-Version: 1.0
9c6c51
Content-Type: text/plain; charset=UTF-8
9c6c51
Content-Transfer-Encoding: 8bit
9c6c51
9c6c51
This test case is currently working but it uncovers existing issue
9c6c51
in our code that the generated QEMU commandline uses the default 1G
9c6c51
hugepage instead of the 2M hugepage specified for exact node.
9c6c51
9c6c51
The issue in our code is that for non-numa guests we take into account
9c6c51
only the first hugepage.  This will be fixed as invalid configuration
9c6c51
since it doesn't make any sense to set default and specific hugepage
9c6c51
for non-numa guest.
9c6c51
9c6c51
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
9c6c51
(cherry picked from commit 6ff69e936e4185983fc331c45b76d3b3d8b717ae)
9c6c51
9c6c51
Conflicts:
9c6c51
    tests/qemuxml2argvdata/hugepages-default-1G-nodeset-2M.args
9c6c51
        - missing upstream commit <caccbba64a>
9c6c51
9c6c51
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1615461
9c6c51
9c6c51
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
9c6c51
Reviewed-by: Ján Tomko <jtomko@redhat.com>
9c6c51
---
9c6c51
 .../hugepages-default-1G-nodeset-2M.args      | 26 ++++++++++++++++
9c6c51
 .../hugepages-default-1G-nodeset-2M.xml       | 31 +++++++++++++++++++
9c6c51
 tests/qemuxml2argvtest.c                      |  1 +
9c6c51
 .../hugepages-default-1G-nodeset-2M.xml       |  1 +
9c6c51
 tests/qemuxml2xmltest.c                       |  1 +
9c6c51
 5 files changed, 60 insertions(+)
9c6c51
 create mode 100644 tests/qemuxml2argvdata/hugepages-default-1G-nodeset-2M.args
9c6c51
 create mode 100644 tests/qemuxml2argvdata/hugepages-default-1G-nodeset-2M.xml
9c6c51
 create mode 120000 tests/qemuxml2xmloutdata/hugepages-default-1G-nodeset-2M.xml
9c6c51
9c6c51
diff --git a/tests/qemuxml2argvdata/hugepages-default-1G-nodeset-2M.args b/tests/qemuxml2argvdata/hugepages-default-1G-nodeset-2M.args
9c6c51
new file mode 100644
9c6c51
index 0000000000..d1f8974032
9c6c51
--- /dev/null
9c6c51
+++ b/tests/qemuxml2argvdata/hugepages-default-1G-nodeset-2M.args
9c6c51
@@ -0,0 +1,26 @@
9c6c51
+LC_ALL=C \
9c6c51
+PATH=/bin \
9c6c51
+HOME=/home/test \
9c6c51
+USER=test \
9c6c51
+LOGNAME=test \
9c6c51
+QEMU_AUDIO_DRV=none \
9c6c51
+/usr/bin/qemu-system-i686 \
9c6c51
+-name SomeDummyHugepagesGuest \
9c6c51
+-S \
9c6c51
+-machine pc,accel=tcg,usb=off,dump-guest-core=off \
9c6c51
+-m 1024 \
9c6c51
+-mem-prealloc \
9c6c51
+-mem-path /dev/hugepages1G/libvirt/qemu/-1-SomeDummyHugepagesGu \
9c6c51
+-smp 2,sockets=2,cores=1,threads=1 \
9c6c51
+-uuid ef1bdff4-27f3-4e85-a807-5fb4d58463cc \
9c6c51
+-display none \
9c6c51
+-no-user-config \
9c6c51
+-nodefaults \
9c6c51
+-chardev socket,id=charmonitor,\
9c6c51
+path=/tmp/lib/domain--1-SomeDummyHugepagesGu/monitor.sock,server,nowait \
9c6c51
+-mon chardev=charmonitor,id=monitor,mode=control \
9c6c51
+-rtc base=utc \
9c6c51
+-no-shutdown \
9c6c51
+-no-acpi \
9c6c51
+-boot c \
9c6c51
+-usb
9c6c51
diff --git a/tests/qemuxml2argvdata/hugepages-default-1G-nodeset-2M.xml b/tests/qemuxml2argvdata/hugepages-default-1G-nodeset-2M.xml
9c6c51
new file mode 100644
9c6c51
index 0000000000..eb0943b105
9c6c51
--- /dev/null
9c6c51
+++ b/tests/qemuxml2argvdata/hugepages-default-1G-nodeset-2M.xml
9c6c51
@@ -0,0 +1,31 @@
9c6c51
+<domain type='qemu'>
9c6c51
+  <name>SomeDummyHugepagesGuest</name>
9c6c51
+  <uuid>ef1bdff4-27f3-4e85-a807-5fb4d58463cc</uuid>
9c6c51
+  <memory unit='KiB'>1048576</memory>
9c6c51
+  <currentMemory unit='KiB'>1048576</currentMemory>
9c6c51
+  <memoryBacking>
9c6c51
+    <hugepages>
9c6c51
+      <page size='1048576' unit='KiB'/>
9c6c51
+      <page size='2048' unit='KiB' nodeset='0'/>
9c6c51
+    </hugepages>
9c6c51
+  </memoryBacking>
9c6c51
+  <vcpu placement='static'>2</vcpu>
9c6c51
+  <os>
9c6c51
+    <type arch='i686' machine='pc'>hvm</type>
9c6c51
+    <boot dev='hd'/>
9c6c51
+  </os>
9c6c51
+  <clock offset='utc'/>
9c6c51
+  <on_poweroff>destroy</on_poweroff>
9c6c51
+  <on_reboot>restart</on_reboot>
9c6c51
+  <on_crash>destroy</on_crash>
9c6c51
+  <devices>
9c6c51
+    <emulator>/usr/bin/qemu-system-i686</emulator>
9c6c51
+    <controller type='usb' index='0'>
9c6c51
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
9c6c51
+    </controller>
9c6c51
+    <controller type='pci' index='0' model='pci-root'/>
9c6c51
+    <input type='mouse' bus='ps2'/>
9c6c51
+    <input type='keyboard' bus='ps2'/>
9c6c51
+    <memballoon model='none'/>
9c6c51
+  </devices>
9c6c51
+</domain>
9c6c51
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
9c6c51
index d4251eff3e..f92c46cec5 100644
9c6c51
--- a/tests/qemuxml2argvtest.c
9c6c51
+++ b/tests/qemuxml2argvtest.c
9c6c51
@@ -959,6 +959,7 @@ mymain(void)
9c6c51
     DO_TEST("hugepages-default", NONE);
9c6c51
     DO_TEST("hugepages-default-2M", NONE);
9c6c51
     DO_TEST("hugepages-default-system-size", NONE);
9c6c51
+    DO_TEST("hugepages-default-1G-nodeset-2M", NONE);
9c6c51
     DO_TEST_FAILURE("hugepages-nodeset-nonexist",
9c6c51
                     QEMU_CAPS_DEVICE_PC_DIMM,
9c6c51
                     QEMU_CAPS_OBJECT_MEMORY_FILE,
9c6c51
diff --git a/tests/qemuxml2xmloutdata/hugepages-default-1G-nodeset-2M.xml b/tests/qemuxml2xmloutdata/hugepages-default-1G-nodeset-2M.xml
9c6c51
new file mode 120000
9c6c51
index 0000000000..3d8eb7616e
9c6c51
--- /dev/null
9c6c51
+++ b/tests/qemuxml2xmloutdata/hugepages-default-1G-nodeset-2M.xml
9c6c51
@@ -0,0 +1 @@
9c6c51
+../qemuxml2argvdata/hugepages-default-1G-nodeset-2M.xml
9c6c51
\ No newline at end of file
9c6c51
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
9c6c51
index 6afc48f98e..6ba8f97e20 100644
9c6c51
--- a/tests/qemuxml2xmltest.c
9c6c51
+++ b/tests/qemuxml2xmltest.c
9c6c51
@@ -336,6 +336,7 @@ mymain(void)
9c6c51
     DO_TEST("hugepages-default", NONE);
9c6c51
     DO_TEST("hugepages-default-2M", NONE);
9c6c51
     DO_TEST("hugepages-default-system-size", NONE);
9c6c51
+    DO_TEST("hugepages-default-1G-nodeset-2M", NONE);
9c6c51
     DO_TEST("hugepages-numa-default-2M", NONE);
9c6c51
     DO_TEST("hugepages-numa-default-dimm", NONE);
9c6c51
     DO_TEST("hugepages-numa-nodeset", NONE);
9c6c51
-- 
9c6c51
2.18.0
9c6c51