From 5ade0ff90581cddce71dd40840ca72f87825cb54 Mon Sep 17 00:00:00 2001 From: Wim ten Have Date: Mon, 24 Apr 2017 15:07:01 +0200 Subject: [PATCH] xlconfigtest: add tests for 'nestedhvm' support Testing various configuration schemas targeting postive and negative nestedhvm under libvirt configuration. Mode "host-passthrough" generates nestedhvm=1 in/from xl format where Intel virtualization (VT-x): or AMD virtualization (AMD-V): disables virtualization mode under guest domains. Signed-off-by: Wim ten Have Signed-off-by: Jim Fehlig --- tests/testutilsxen.c | 30 +++++++++ .../test-fullvirt-nestedhvm-disabled.cfg | 26 ++++++++ .../test-fullvirt-nestedhvm-disabled.xml | 61 +++++++++++++++++++ .../xlconfigdata/test-fullvirt-nestedhvm.cfg | 26 ++++++++ .../xlconfigdata/test-fullvirt-nestedhvm.xml | 59 ++++++++++++++++++ tests/xlconfigtest.c | 2 + 6 files changed, 204 insertions(+) create mode 100644 tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.cfg create mode 100644 tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.xml create mode 100644 tests/xlconfigdata/test-fullvirt-nestedhvm.cfg create mode 100644 tests/xlconfigdata/test-fullvirt-nestedhvm.xml diff --git a/tests/testutilsxen.c b/tests/testutilsxen.c index 122789c252..c4fc1465e7 100644 --- a/tests/testutilsxen.c +++ b/tests/testutilsxen.c @@ -6,6 +6,33 @@ #include "testutilsxen.h" #include "domain_conf.h" +static virCPUFeatureDef cpuDefaultFeatures[] = { + { (char *) "ds", -1 }, + { (char *) "acpi", -1 }, + { (char *) "ss", -1 }, + { (char *) "ht", -1 }, + { (char *) "tm", -1 }, + { (char *) "pbe", -1 }, + { (char *) "ds_cpl", -1 }, + { (char *) "vmx", -1 }, + { (char *) "est", -1 }, + { (char *) "tm2", -1 }, + { (char *) "cx16", -1 }, + { (char *) "xtpr", -1 }, + { (char *) "lahf_lm", -1 }, +}; +static virCPUDef cpuDefaultData = { + .type = VIR_CPU_TYPE_HOST, + .arch = VIR_ARCH_X86_64, + .model = (char *) "core2duo", + .vendor = (char *) "Intel", + .sockets = 1, + .cores = 2, + .threads = 1, + .nfeatures = ARRAY_CARDINALITY(cpuDefaultFeatures), + .nfeatures_max = ARRAY_CARDINALITY(cpuDefaultFeatures), + .features = cpuDefaultFeatures, +}; virCapsPtr testXenCapsInit(void) { @@ -88,6 +115,9 @@ testXLInitCaps(void) if ((caps = virCapabilitiesNew(virArchFromHost(), false, false)) == NULL) return NULL; + + caps->host.cpu = virCPUDefCopy(&cpuDefaultData); + nmachines = ARRAY_CARDINALITY(x86_machines); if ((machines = virCapabilitiesAllocMachines(x86_machines, nmachines)) == NULL) goto cleanup; diff --git a/tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.cfg b/tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.cfg new file mode 100644 index 0000000000..d4b9f452de --- /dev/null +++ b/tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.cfg @@ -0,0 +1,26 @@ +name = "XenGuest2" +uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809" +maxmem = 579 +memory = 394 +vcpus = 1 +pae = 1 +acpi = 1 +apic = 1 +viridian = 0 +rtc_timeoffset = 0 +localtime = 0 +on_poweroff = "destroy" +on_reboot = "restart" +on_crash = "restart" +device_model = "/usr/lib/xen/bin/qemu-system-i386" +sdl = 0 +vnc = 1 +vncunused = 1 +vnclisten = "127.0.0.1" +vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,model=e1000" ] +parallel = "none" +serial = "none" +builder = "hvm" +boot = "d" +nestedhvm = 0 +disk = [ "format=raw,vdev=hda,access=rw,backendtype=phy,target=/dev/HostVG/XenGuest2", "format=qcow2,vdev=hdb,access=rw,backendtype=qdisk,target=/var/lib/libvirt/images/XenGuest2-home", "format=raw,vdev=hdc,access=ro,backendtype=qdisk,devtype=cdrom,target=/root/boot.iso" ] diff --git a/tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.xml b/tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.xml new file mode 100644 index 0000000000..58b63384d3 --- /dev/null +++ b/tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.xml @@ -0,0 +1,61 @@ + + XenGuest2 + c7a5fdb2-cdaf-9455-926a-d65c16db1809 + 592896 + 403456 + 1 + + hvm + /usr/lib/xen/boot/hvmloader + + + + + + + + + + + + destroy + restart + restart + + /usr/lib/xen/bin/qemu-system-i386 + + + + +
+ + + + + +
+ + + + + + +
+ + + + + +