[libvirt] [PATCH] tests: reintroduce tests for libxl's legacy nested setting

Jim Fehlig posted 1 patch 5 years, 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20180926173119.3405-1-jfehlig@suse.com
.../fullvirt-cpuid-legacy-nest.json           |  60 ++++++
.../fullvirt-cpuid-legacy-nest.xml            |  34 ++++
.../vnuma-hvm-legacy-nest.json                | 178 ++++++++++++++++++
.../vnuma-hvm-legacy-nest.xml                 | 100 ++++++++++
tests/libxlxml2domconfigtest.c                |   3 +
5 files changed, 375 insertions(+)
[libvirt] [PATCH] tests: reintroduce tests for libxl's legacy nested setting
Posted by Jim Fehlig 5 years, 6 months ago
The preferred location for setting the nested CPU flag changed in
Xen 4.10 and is advertised via the LIBXL_HAVE_BUILDINFO_NESTED_HVM
define.  Commit 95d19cd0 changed libxl to use the new preferred
location but unconditionally changed the tests, causing 'make check'
failures against Xen < 4.10 that do not contain the new location.

Commit e94415d5 fixed the failures by only running the tests when
LIBXL_HAVE_BUILDINFO_NESTED_HVM is defined. Since libvirt supports
several versions of Xen that use the old nested location, it is
prudent to test the flag is set correctly. This patch reintroduces
the tests for the legacy location of the nested setting.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
---

We could probably get by with one test for the old nested location,
in which case I'd drop vnuma-hvm-legacy-nest. Any opinions on that?

 .../fullvirt-cpuid-legacy-nest.json           |  60 ++++++
 .../fullvirt-cpuid-legacy-nest.xml            |  34 ++++
 .../vnuma-hvm-legacy-nest.json                | 178 ++++++++++++++++++
 .../vnuma-hvm-legacy-nest.xml                 | 100 ++++++++++
 tests/libxlxml2domconfigtest.c                |   3 +
 5 files changed, 375 insertions(+)

diff --git a/tests/libxlxml2domconfigdata/fullvirt-cpuid-legacy-nest.json b/tests/libxlxml2domconfigdata/fullvirt-cpuid-legacy-nest.json
new file mode 100644
index 0000000000..cdc8b9867d
--- /dev/null
+++ b/tests/libxlxml2domconfigdata/fullvirt-cpuid-legacy-nest.json
@@ -0,0 +1,60 @@
+{
+    "c_info": {
+        "type": "hvm",
+        "name": "XenGuest2",
+        "uuid": "c7a5fdb2-cdaf-9455-926a-d65c16db1809"
+    },
+    "b_info": {
+        "max_vcpus": 1,
+        "avail_vcpus": [
+            0
+        ],
+        "max_memkb": 592896,
+        "target_memkb": 403456,
+        "shadow_memkb": 5656,
+        "cpuid": [
+            {
+                "leaf": 1,
+                "ecx": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0",
+                "edx": "xxxxxxxxxxxxxxxxxxxxxxxxxxx1xxxx"
+            }
+        ],
+        "sched_params": {
+        },
+        "type.hvm": {
+            "pae": "True",
+            "apic": "True",
+            "acpi": "True",
+            "nested_hvm": "False",
+            "nographic": "True",
+            "vnc": {
+                "enable": "False"
+            },
+            "sdl": {
+                "enable": "False"
+            },
+            "spice": {
+
+            },
+            "boot": "c",
+            "rdm": {
+
+            }
+        },
+        "arch_arm": {
+
+        }
+    },
+    "disks": [
+        {
+            "pdev_path": "/dev/HostVG/XenGuest2",
+            "vdev": "hda",
+            "backend": "phy",
+            "format": "raw",
+            "removable": 1,
+            "readwrite": 1
+        }
+    ],
+    "on_reboot": "restart",
+    "on_crash": "restart"
+}
diff --git a/tests/libxlxml2domconfigdata/fullvirt-cpuid-legacy-nest.xml b/tests/libxlxml2domconfigdata/fullvirt-cpuid-legacy-nest.xml
new file mode 100644
index 0000000000..4f06db0714
--- /dev/null
+++ b/tests/libxlxml2domconfigdata/fullvirt-cpuid-legacy-nest.xml
@@ -0,0 +1,34 @@
+<domain type='xen'>
+  <name>XenGuest2</name>
+  <uuid>c7a5fdb2-cdaf-9455-926a-d65c16db1809</uuid>
+  <memory unit='KiB'>592896</memory>
+  <currentMemory unit='KiB'>403456</currentMemory>
+  <vcpu placement='static'>1</vcpu>
+  <os>
+    <type arch='x86_64' machine='xenfv'>hvm</type>
+  </os>
+  <features>
+    <acpi/>
+    <apic/>
+    <pae/>
+  </features>
+  <cpu mode='host-passthrough'>
+    <feature policy='forbid' name='pni'/>
+    <feature policy='forbid' name='vmx'/>
+    <feature policy='require' name='tsc'/>
+  </cpu>
+  <clock offset='variable' adjustment='0' basis='utc'/>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>restart</on_crash>
+  <devices>
+    <disk type='block' device='disk'>
+      <driver name='phy' type='raw'/>
+      <source dev='/dev/HostVG/XenGuest2'/>
+      <target dev='hda' bus='ide'/>
+      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+    </disk>
+    <input type='mouse' bus='ps2'/>
+    <input type='keyboard' bus='ps2'/>
+  </devices>
+</domain>
diff --git a/tests/libxlxml2domconfigdata/vnuma-hvm-legacy-nest.json b/tests/libxlxml2domconfigdata/vnuma-hvm-legacy-nest.json
new file mode 100644
index 0000000000..3b2fc5f40f
--- /dev/null
+++ b/tests/libxlxml2domconfigdata/vnuma-hvm-legacy-nest.json
@@ -0,0 +1,178 @@
+{
+    "c_info": {
+        "type": "hvm",
+        "name": "test-hvm",
+        "uuid": "2147d599-9cc6-c0dc-92ab-4064b5446e9b"
+    },
+    "b_info": {
+        "max_vcpus": 6,
+        "avail_vcpus": [
+            0,
+            1,
+            2,
+            3,
+            4,
+            5
+        ],
+        "vnuma_nodes": [
+            {
+                "memkb": 2097152,
+                "distances": [
+                    10,
+                    21,
+                    31,
+                    41,
+                    51,
+                    61
+                ],
+                "vcpus": [
+                    0
+                ]
+            },
+            {
+                "memkb": 2097152,
+                "distances": [
+                    21,
+                    10,
+                    21,
+                    31,
+                    41,
+                    51
+                ],
+                "vcpus": [
+                    1
+                ]
+            },
+            {
+                "memkb": 2097152,
+                "distances": [
+                    31,
+                    21,
+                    10,
+                    21,
+                    31,
+                    41
+                ],
+                "vcpus": [
+                    2
+                ]
+            },
+            {
+                "memkb": 2097152,
+                "distances": [
+                    41,
+                    31,
+                    21,
+                    10,
+                    21,
+                    31
+                ],
+                "vcpus": [
+                    3
+                ]
+            },
+            {
+                "memkb": 2097152,
+                "distances": [
+                    51,
+                    41,
+                    31,
+                    21,
+                    10,
+                    21
+                ],
+                "vcpus": [
+                    4
+                ]
+            },
+            {
+                "memkb": 2097152,
+                "distances": [
+                    61,
+                    51,
+                    41,
+                    31,
+                    21,
+                    10
+                ],
+                "vcpus": [
+                    5
+                ]
+            }
+        ],
+        "max_memkb": 1048576,
+        "target_memkb": 1048576,
+        "video_memkb": 8192,
+        "shadow_memkb": 14336,
+        "device_model_version": "qemu_xen",
+        "device_model": "/bin/true",
+        "sched_params": {
+
+        },
+        "type.hvm": {
+            "pae": "True",
+            "apic": "True",
+            "acpi": "True",
+            "nested_hvm": "True",
+            "vga": {
+                "kind": "cirrus"
+            },
+            "vnc": {
+                "enable": "True",
+                "listen": "0.0.0.0",
+                "findunused": "False"
+            },
+            "sdl": {
+                "enable": "False"
+            },
+            "spice": {
+
+            },
+            "boot": "c",
+            "rdm": {
+
+            }
+        },
+        "arch_arm": {
+
+        }
+    },
+    "disks": [
+        {
+            "pdev_path": "/var/lib/xen/images/test-hvm.img",
+            "vdev": "hda",
+            "backend": "qdisk",
+            "format": "raw",
+            "removable": 1,
+            "readwrite": 1
+        }
+    ],
+    "nics": [
+        {
+            "devid": 0,
+            "mac": "00:16:3e:66:12:b4",
+            "bridge": "br0",
+            "script": "/etc/xen/scripts/vif-bridge",
+            "nictype": "vif_ioemu"
+        }
+    ],
+    "vfbs": [
+        {
+	    "devid": -1,
+            "vnc": {
+                "enable": "True",
+                "listen": "0.0.0.0",
+                "findunused": "False"
+            },
+            "sdl": {
+                "enable": "False"
+            }
+        }
+    ],
+    "vkbs": [
+        {
+            "devid": -1
+        }
+    ],
+    "on_reboot": "restart"
+}
diff --git a/tests/libxlxml2domconfigdata/vnuma-hvm-legacy-nest.xml b/tests/libxlxml2domconfigdata/vnuma-hvm-legacy-nest.xml
new file mode 100644
index 0000000000..6e265e31a9
--- /dev/null
+++ b/tests/libxlxml2domconfigdata/vnuma-hvm-legacy-nest.xml
@@ -0,0 +1,100 @@
+<domain type='xen'>
+  <name>test-hvm</name>
+  <description>None</description>
+  <uuid>2147d599-9cc6-c0dc-92ab-4064b5446e9b</uuid>
+  <memory>1048576</memory>
+  <currentMemory>1048576</currentMemory>
+  <vcpu>6</vcpu>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>destroy</on_crash>
+  <clock offset='utc'/>
+  <os>
+    <type>hvm</type>
+    <loader>/usr/lib/xen/boot/hvmloader</loader>
+    <boot dev='hd'/>
+  </os>
+  <features>
+    <apic/>
+    <acpi/>
+    <pae/>
+  </features>
+  <cpu mode='host-passthrough'>
+    <numa>
+      <cell id='0' cpus='0' memory='2097152' unit='KiB'>
+        <distances>
+          <sibling id='0' value='10'/>
+          <sibling id='1' value='21'/>
+          <sibling id='2' value='31'/>
+          <sibling id='3' value='41'/>
+          <sibling id='4' value='51'/>
+          <sibling id='5' value='61'/>
+        </distances>
+      </cell>
+      <cell id='1' cpus='1' memory='2097152' unit='KiB'>
+        <distances>
+          <sibling id='0' value='21'/>
+          <sibling id='1' value='10'/>
+          <sibling id='2' value='21'/>
+          <sibling id='3' value='31'/>
+          <sibling id='4' value='41'/>
+          <sibling id='5' value='51'/>
+        </distances>
+      </cell>
+      <cell id='2' cpus='2' memory='2097152' unit='KiB'>
+        <distances>
+          <sibling id='0' value='31'/>
+          <sibling id='1' value='21'/>
+          <sibling id='2' value='10'/>
+          <sibling id='3' value='21'/>
+          <sibling id='4' value='31'/>
+          <sibling id='5' value='41'/>
+        </distances>
+      </cell>
+      <cell id='3' cpus='3' memory='2097152' unit='KiB'>
+        <distances>
+          <sibling id='0' value='41'/>
+          <sibling id='1' value='31'/>
+          <sibling id='2' value='21'/>
+          <sibling id='3' value='10'/>
+          <sibling id='4' value='21'/>
+          <sibling id='5' value='31'/>
+        </distances>
+      </cell>
+      <cell id='4' cpus='4' memory='2097152' unit='KiB'>
+        <distances>
+          <sibling id='0' value='51'/>
+          <sibling id='1' value='41'/>
+          <sibling id='2' value='31'/>
+          <sibling id='3' value='21'/>
+          <sibling id='4' value='10'/>
+          <sibling id='5' value='21'/>
+        </distances>
+      </cell>
+      <cell id='5' cpus='5' memory='2097152' unit='KiB'>
+        <distances>
+          <sibling id='0' value='61'/>
+          <sibling id='1' value='51'/>
+          <sibling id='2' value='41'/>
+          <sibling id='3' value='31'/>
+          <sibling id='4' value='21'/>
+          <sibling id='5' value='10'/>
+        </distances>
+      </cell>
+    </numa>
+  </cpu>
+  <devices>
+    <emulator>/bin/true</emulator>
+    <disk type='file' device='disk'>
+      <driver name='qemu'/>
+      <source file='/var/lib/xen/images/test-hvm.img'/>
+      <target dev='hda'/>
+    </disk>
+    <interface type='bridge'>
+      <source bridge='br0'/>
+      <mac address='00:16:3e:66:12:b4'/>
+      <script path='/etc/xen/scripts/vif-bridge'/>
+    </interface>
+    <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'/>
+  </devices>
+</domain>
diff --git a/tests/libxlxml2domconfigtest.c b/tests/libxlxml2domconfigtest.c
index 22f9c2c871..cf2132563e 100644
--- a/tests/libxlxml2domconfigtest.c
+++ b/tests/libxlxml2domconfigtest.c
@@ -212,6 +212,9 @@ mymain(void)
 # ifdef LIBXL_HAVE_BUILDINFO_NESTED_HVM
     DO_TEST("vnuma-hvm");
     DO_TEST("fullvirt-cpuid");
+# else
+    DO_TEST("vnuma-hvm-legacy-nest");
+    DO_TEST("fullvirt-cpuid-legacy-nest");
 # endif
 
 
-- 
2.18.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH] tests: reintroduce tests for libxl's legacy nested setting
Posted by Erik Skultety 5 years, 6 months ago
On Wed, Sep 26, 2018 at 11:31:19AM -0600, Jim Fehlig wrote:
> The preferred location for setting the nested CPU flag changed in
> Xen 4.10 and is advertised via the LIBXL_HAVE_BUILDINFO_NESTED_HVM
> define.  Commit 95d19cd0 changed libxl to use the new preferred
> location but unconditionally changed the tests, causing 'make check'
> failures against Xen < 4.10 that do not contain the new location.
>
> Commit e94415d5 fixed the failures by only running the tests when
> LIBXL_HAVE_BUILDINFO_NESTED_HVM is defined. Since libvirt supports
> several versions of Xen that use the old nested location, it is
> prudent to test the flag is set correctly. This patch reintroduces
> the tests for the legacy location of the nested setting.
>
> Signed-off-by: Jim Fehlig <jfehlig@suse.com>
> ---
>
> We could probably get by with one test for the old nested location,
> in which case I'd drop vnuma-hvm-legacy-nest. Any opinions on that?

I verified with a few different platforms. I don't have a better idea on what
to do about the legacy tests, we either add more (even identical) test files
or we figure out some black magic to do the same thing (not preferred).
Anyway, to answer your question, even though it might be enough, I'd like to
stay consistent and keep both, so that if one day someone is looking at the
source they don't wonder why only one of them is being run in the legacy mode.
I hope that makes sense.

Reviewed-by: Erik Skultety <eskultet@redhat.com>

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH] tests: reintroduce tests for libxl's legacy nested setting
Posted by Jim Fehlig 5 years, 6 months ago
On 9/27/18 3:29 AM, Erik Skultety wrote:
> On Wed, Sep 26, 2018 at 11:31:19AM -0600, Jim Fehlig wrote:
>> The preferred location for setting the nested CPU flag changed in
>> Xen 4.10 and is advertised via the LIBXL_HAVE_BUILDINFO_NESTED_HVM
>> define.  Commit 95d19cd0 changed libxl to use the new preferred
>> location but unconditionally changed the tests, causing 'make check'
>> failures against Xen < 4.10 that do not contain the new location.
>>
>> Commit e94415d5 fixed the failures by only running the tests when
>> LIBXL_HAVE_BUILDINFO_NESTED_HVM is defined. Since libvirt supports
>> several versions of Xen that use the old nested location, it is
>> prudent to test the flag is set correctly. This patch reintroduces
>> the tests for the legacy location of the nested setting.
>>
>> Signed-off-by: Jim Fehlig <jfehlig@suse.com>
>> ---
>>
>> We could probably get by with one test for the old nested location,
>> in which case I'd drop vnuma-hvm-legacy-nest. Any opinions on that?
> 
> I verified with a few different platforms. I don't have a better idea on what
> to do about the legacy tests, we either add more (even identical) test files
> or we figure out some black magic to do the same thing (not preferred).
> Anyway, to answer your question, even though it might be enough, I'd like to
> stay consistent and keep both, so that if one day someone is looking at the
> source they don't wonder why only one of them is being run in the legacy mode.
> I hope that makes sense.

Yep, no problem. Should I push now or after release?

Regards,
Jim

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH] tests: reintroduce tests for libxl's legacy nested setting
Posted by Erik Skultety 5 years, 5 months ago
On Thu, Sep 27, 2018 at 08:25:53AM -0600, Jim Fehlig wrote:
> On 9/27/18 3:29 AM, Erik Skultety wrote:
> > On Wed, Sep 26, 2018 at 11:31:19AM -0600, Jim Fehlig wrote:
> > > The preferred location for setting the nested CPU flag changed in
> > > Xen 4.10 and is advertised via the LIBXL_HAVE_BUILDINFO_NESTED_HVM
> > > define.  Commit 95d19cd0 changed libxl to use the new preferred
> > > location but unconditionally changed the tests, causing 'make check'
> > > failures against Xen < 4.10 that do not contain the new location.
> > >
> > > Commit e94415d5 fixed the failures by only running the tests when
> > > LIBXL_HAVE_BUILDINFO_NESTED_HVM is defined. Since libvirt supports
> > > several versions of Xen that use the old nested location, it is
> > > prudent to test the flag is set correctly. This patch reintroduces
> > > the tests for the legacy location of the nested setting.
> > >
> > > Signed-off-by: Jim Fehlig <jfehlig@suse.com>
> > > ---
> > >
> > > We could probably get by with one test for the old nested location,
> > > in which case I'd drop vnuma-hvm-legacy-nest. Any opinions on that?
> >
> > I verified with a few different platforms. I don't have a better idea on what
> > to do about the legacy tests, we either add more (even identical) test files
> > or we figure out some black magic to do the same thing (not preferred).
> > Anyway, to answer your question, even though it might be enough, I'd like to
> > stay consistent and keep both, so that if one day someone is looking at the
> > source they don't wonder why only one of them is being run in the legacy mode.
> > I hope that makes sense.
>
> Yep, no problem. Should I push now or after release?

Ah, sorry, we definitely want this in the release, so safe for freeze.

Erik

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH] tests: reintroduce tests for libxl's legacy nested setting
Posted by Erik Skultety 5 years, 5 months ago
On Mon, Oct 01, 2018 at 08:04:57AM +0200, Erik Skultety wrote:
> On Thu, Sep 27, 2018 at 08:25:53AM -0600, Jim Fehlig wrote:
> > On 9/27/18 3:29 AM, Erik Skultety wrote:
> > > On Wed, Sep 26, 2018 at 11:31:19AM -0600, Jim Fehlig wrote:
> > > > The preferred location for setting the nested CPU flag changed in
> > > > Xen 4.10 and is advertised via the LIBXL_HAVE_BUILDINFO_NESTED_HVM
> > > > define.  Commit 95d19cd0 changed libxl to use the new preferred
> > > > location but unconditionally changed the tests, causing 'make check'
> > > > failures against Xen < 4.10 that do not contain the new location.
> > > >
> > > > Commit e94415d5 fixed the failures by only running the tests when
> > > > LIBXL_HAVE_BUILDINFO_NESTED_HVM is defined. Since libvirt supports
> > > > several versions of Xen that use the old nested location, it is
> > > > prudent to test the flag is set correctly. This patch reintroduces
> > > > the tests for the legacy location of the nested setting.
> > > >
> > > > Signed-off-by: Jim Fehlig <jfehlig@suse.com>
> > > > ---
> > > >
> > > > We could probably get by with one test for the old nested location,
> > > > in which case I'd drop vnuma-hvm-legacy-nest. Any opinions on that?
> > >
> > > I verified with a few different platforms. I don't have a better idea on what
> > > to do about the legacy tests, we either add more (even identical) test files
> > > or we figure out some black magic to do the same thing (not preferred).
> > > Anyway, to answer your question, even though it might be enough, I'd like to
> > > stay consistent and keep both, so that if one day someone is looking at the
> > > source they don't wonder why only one of them is being run in the legacy mode.
> > > I hope that makes sense.
> >
> > Yep, no problem. Should I push now or after release?
>
> Ah, sorry, we definitely want this in the release, so safe for freeze.

I went ahead and pushed the patch myself, since DV plans on doing the release
at some point during the day which might already by too late for you because of
a different timezone.

Erik

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH] tests: reintroduce tests for libxl's legacy nested setting
Posted by Jim Fehlig 5 years, 5 months ago
On 10/1/18 2:35 AM, Erik Skultety wrote:
> On Mon, Oct 01, 2018 at 08:04:57AM +0200, Erik Skultety wrote:
>> On Thu, Sep 27, 2018 at 08:25:53AM -0600, Jim Fehlig wrote:
>>> On 9/27/18 3:29 AM, Erik Skultety wrote:
>>>> On Wed, Sep 26, 2018 at 11:31:19AM -0600, Jim Fehlig wrote:
>>>>> The preferred location for setting the nested CPU flag changed in
>>>>> Xen 4.10 and is advertised via the LIBXL_HAVE_BUILDINFO_NESTED_HVM
>>>>> define.  Commit 95d19cd0 changed libxl to use the new preferred
>>>>> location but unconditionally changed the tests, causing 'make check'
>>>>> failures against Xen < 4.10 that do not contain the new location.
>>>>>
>>>>> Commit e94415d5 fixed the failures by only running the tests when
>>>>> LIBXL_HAVE_BUILDINFO_NESTED_HVM is defined. Since libvirt supports
>>>>> several versions of Xen that use the old nested location, it is
>>>>> prudent to test the flag is set correctly. This patch reintroduces
>>>>> the tests for the legacy location of the nested setting.
>>>>>
>>>>> Signed-off-by: Jim Fehlig <jfehlig@suse.com>
>>>>> ---
>>>>>
>>>>> We could probably get by with one test for the old nested location,
>>>>> in which case I'd drop vnuma-hvm-legacy-nest. Any opinions on that?
>>>>
>>>> I verified with a few different platforms. I don't have a better idea on what
>>>> to do about the legacy tests, we either add more (even identical) test files
>>>> or we figure out some black magic to do the same thing (not preferred).
>>>> Anyway, to answer your question, even though it might be enough, I'd like to
>>>> stay consistent and keep both, so that if one day someone is looking at the
>>>> source they don't wonder why only one of them is being run in the legacy mode.
>>>> I hope that makes sense.
>>>
>>> Yep, no problem. Should I push now or after release?
>>
>> Ah, sorry, we definitely want this in the release, so safe for freeze.
> 
> I went ahead and pushed the patch myself, since DV plans on doing the release
> at some point during the day which might already by too late for you because of
> a different timezone.

Yep, I would have missed the release. Thanks for pushing it!

Regards
Jim

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