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