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