[libvirt] [PATCH 3/3] tests: Add test for properly removing cachetune entries

Martin Kletzander posted 3 patches 7 years, 3 months ago
[libvirt] [PATCH 3/3] tests: Add test for properly removing cachetune entries
Posted by Martin Kletzander 7 years, 3 months ago
Cachetune for unavailable vCPUs should be cleared the same way vcpupin and other
things do, so let's add tests for it.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
---
 .../genericxml2xmlindata/cachetune-extra-tunes.xml | 33 ++++++++++++++++++++++
 .../cachetune-extra-tunes.xml                      | 30 ++++++++++++++++++++
 tests/genericxml2xmltest.c                         |  1 +
 3 files changed, 64 insertions(+)
 create mode 100644 tests/genericxml2xmlindata/cachetune-extra-tunes.xml
 create mode 100644 tests/genericxml2xmloutdata/cachetune-extra-tunes.xml

diff --git a/tests/genericxml2xmlindata/cachetune-extra-tunes.xml b/tests/genericxml2xmlindata/cachetune-extra-tunes.xml
new file mode 100644
index 000000000000..d3b01a8ecdbf
--- /dev/null
+++ b/tests/genericxml2xmlindata/cachetune-extra-tunes.xml
@@ -0,0 +1,33 @@
+<domain type='qemu'>
+  <name>QEMUGuest1</name>
+  <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+  <memory unit='KiB'>219136</memory>
+  <currentMemory unit='KiB'>219136</currentMemory>
+  <vcpu placement='static'>2</vcpu>
+  <cputune>
+    <cachetune vcpus='0-3'>
+      <cache id='0' level='3' type='code' size='7680' unit='KiB'/>
+      <cache id='1' level='3' type='data' size='3840' unit='KiB'/>
+    </cachetune>
+    <cachetune vcpus='100'>
+      <cache id='1' level='3' type='code' size='6' unit='MiB'/>
+    </cachetune>
+  </cputune>
+  <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'/>
+    <controller type='ide' index='0'/>
+    <controller type='pci' index='0' model='pci-root'/>
+    <input type='mouse' bus='ps2'/>
+    <input type='keyboard' bus='ps2'/>
+    <memballoon model='virtio'/>
+  </devices>
+</domain>
diff --git a/tests/genericxml2xmloutdata/cachetune-extra-tunes.xml b/tests/genericxml2xmloutdata/cachetune-extra-tunes.xml
new file mode 100644
index 000000000000..db85af08da25
--- /dev/null
+++ b/tests/genericxml2xmloutdata/cachetune-extra-tunes.xml
@@ -0,0 +1,30 @@
+<domain type='qemu'>
+  <name>QEMUGuest1</name>
+  <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+  <memory unit='KiB'>219136</memory>
+  <currentMemory unit='KiB'>219136</currentMemory>
+  <vcpu placement='static'>2</vcpu>
+  <cputune>
+    <cachetune vcpus='0-1'>
+      <cache id='0' level='3' type='code' size='7680' unit='KiB'/>
+      <cache id='1' level='3' type='data' size='3840' unit='KiB'/>
+    </cachetune>
+  </cputune>
+  <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'/>
+    <controller type='ide' index='0'/>
+    <controller type='pci' index='0' model='pci-root'/>
+    <input type='mouse' bus='ps2'/>
+    <input type='keyboard' bus='ps2'/>
+    <memballoon model='virtio'/>
+  </devices>
+</domain>
diff --git a/tests/genericxml2xmltest.c b/tests/genericxml2xmltest.c
index 496e9260fa86..c33fce192237 100644
--- a/tests/genericxml2xmltest.c
+++ b/tests/genericxml2xmltest.c
@@ -133,6 +133,7 @@ mymain(void)
     DO_TEST("cachetune");
     DO_TEST("cachetune-small");
     DO_TEST("cachetune-cdp");
+    DO_TEST_DIFFERENT("cachetune-extra-tunes");
     DO_TEST_FULL("cachetune-colliding-allocs", false, true,
                  TEST_COMPARE_DOM_XML2XML_RESULT_FAIL_PARSE);
     DO_TEST_FULL("cachetune-colliding-tunes", false, true,
-- 
2.16.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 3/3] tests: Add test for properly removing cachetune entries
Posted by Peter Krempa 7 years, 3 months ago
On Fri, Feb 02, 2018 at 08:23:34 +0100, Martin Kletzander wrote:
> Cachetune for unavailable vCPUs should be cleared the same way vcpupin and other
> things do, so let's add tests for it.

Umm, note that pinning can be setup for offline vCPUs. Obviously not for
those which are permanently removed when shrinking number of vcpus in a
persistent definition.
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 3/3] tests: Add test for properly removing cachetune entries
Posted by Martin Kletzander 7 years, 3 months ago
On Fri, Feb 02, 2018 at 10:39:05AM +0100, Peter Krempa wrote:
>On Fri, Feb 02, 2018 at 08:23:34 +0100, Martin Kletzander wrote:
>> Cachetune for unavailable vCPUs should be cleared the same way vcpupin and other
>> things do, so let's add tests for it.
>
>Umm, note that pinning can be setup for offline vCPUs. Obviously not for
>those which are permanently removed when shrinking number of vcpus in a
>persistent definition.

Yeah, by "unavailable" I meant any vCPU with `id > def->maxvcpus`.  The tunings
are kept for those that are not started yet and hotplug handles adding those
into allocations.
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 3/3] tests: Add test for properly removing cachetune entries
Posted by Peter Krempa 7 years, 3 months ago
On Fri, Feb 02, 2018 at 11:11:08 +0100, Martin Kletzander wrote:
> On Fri, Feb 02, 2018 at 10:39:05AM +0100, Peter Krempa wrote:
> > On Fri, Feb 02, 2018 at 08:23:34 +0100, Martin Kletzander wrote:
> > > Cachetune for unavailable vCPUs should be cleared the same way vcpupin and other
> > > things do, so let's add tests for it.
> > 
> > Umm, note that pinning can be setup for offline vCPUs. Obviously not for
> > those which are permanently removed when shrinking number of vcpus in a
> > persistent definition.
> 
> Yeah, by "unavailable" I meant any vCPU with `id > def->maxvcpus`.  The tunings
> are kept for those that are not started yet and hotplug handles adding those
> into allocations.

Thanks for clarification. I can see it in the XML too now.

ACK
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list