mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
xlconfigtest: add tests for 'nestedhvm' support
Testing various configuration schemas targeting postive and negative nestedhvm under libvirt <cpu mode="host-passthrough"> configuration. Mode "host-passthrough" generates nestedhvm=1 in/from xl format where Intel virtualization (VT-x): <feature policy='disable' name='vmx'/> or AMD virtualization (AMD-V): <feature policy='disable' name='svm'/> disables virtualization mode under guest domains. Signed-off-by: Wim ten Have <wim.ten.have@oracle.com> Signed-off-by: Jim Fehlig <jfehlig@suse.com>
This commit is contained in:
parent
8659e7ffe3
commit
5ade0ff905
@ -6,6 +6,33 @@
|
|||||||
#include "testutilsxen.h"
|
#include "testutilsxen.h"
|
||||||
#include "domain_conf.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)
|
virCapsPtr testXenCapsInit(void)
|
||||||
{
|
{
|
||||||
@ -88,6 +115,9 @@ testXLInitCaps(void)
|
|||||||
if ((caps = virCapabilitiesNew(virArchFromHost(),
|
if ((caps = virCapabilitiesNew(virArchFromHost(),
|
||||||
false, false)) == NULL)
|
false, false)) == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
caps->host.cpu = virCPUDefCopy(&cpuDefaultData);
|
||||||
|
|
||||||
nmachines = ARRAY_CARDINALITY(x86_machines);
|
nmachines = ARRAY_CARDINALITY(x86_machines);
|
||||||
if ((machines = virCapabilitiesAllocMachines(x86_machines, nmachines)) == NULL)
|
if ((machines = virCapabilitiesAllocMachines(x86_machines, nmachines)) == NULL)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
26
tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.cfg
Normal file
26
tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.cfg
Normal file
@ -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" ]
|
61
tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.xml
Normal file
61
tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.xml
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
<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>
|
||||||
|
<loader type='rom'>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
|
<boot dev='cdrom'/>
|
||||||
|
</os>
|
||||||
|
<features>
|
||||||
|
<acpi/>
|
||||||
|
<apic/>
|
||||||
|
<pae/>
|
||||||
|
</features>
|
||||||
|
<cpu mode='host-passthrough'>
|
||||||
|
<feature policy='disable' name='vmx'/>
|
||||||
|
</cpu>
|
||||||
|
<clock offset='variable' adjustment='0' basis='utc'/>
|
||||||
|
<on_poweroff>destroy</on_poweroff>
|
||||||
|
<on_reboot>restart</on_reboot>
|
||||||
|
<on_crash>restart</on_crash>
|
||||||
|
<devices>
|
||||||
|
<emulator>/usr/lib/xen/bin/qemu-system-i386</emulator>
|
||||||
|
<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>
|
||||||
|
<disk type='file' device='disk'>
|
||||||
|
<driver name='qemu' type='qcow2'/>
|
||||||
|
<source file='/var/lib/libvirt/images/XenGuest2-home'/>
|
||||||
|
<target dev='hdb' bus='ide'/>
|
||||||
|
<address type='drive' controller='0' bus='0' target='0' unit='1'/>
|
||||||
|
</disk>
|
||||||
|
<disk type='file' device='cdrom'>
|
||||||
|
<driver name='qemu' type='raw'/>
|
||||||
|
<source file='/root/boot.iso'/>
|
||||||
|
<target dev='hdc' bus='ide'/>
|
||||||
|
<readonly/>
|
||||||
|
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
|
||||||
|
</disk>
|
||||||
|
<controller type='ide' index='0'/>
|
||||||
|
<interface type='bridge'>
|
||||||
|
<mac address='00:16:3e:66:92:9c'/>
|
||||||
|
<source bridge='xenbr1'/>
|
||||||
|
<script path='vif-bridge'/>
|
||||||
|
<model type='e1000'/>
|
||||||
|
</interface>
|
||||||
|
<input type='mouse' bus='ps2'/>
|
||||||
|
<input type='keyboard' bus='ps2'/>
|
||||||
|
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'>
|
||||||
|
<listen type='address' address='127.0.0.1'/>
|
||||||
|
</graphics>
|
||||||
|
<video>
|
||||||
|
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
|
||||||
|
</video>
|
||||||
|
</devices>
|
||||||
|
</domain>
|
26
tests/xlconfigdata/test-fullvirt-nestedhvm.cfg
Normal file
26
tests/xlconfigdata/test-fullvirt-nestedhvm.cfg
Normal file
@ -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 = 1
|
||||||
|
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" ]
|
59
tests/xlconfigdata/test-fullvirt-nestedhvm.xml
Normal file
59
tests/xlconfigdata/test-fullvirt-nestedhvm.xml
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
<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>
|
||||||
|
<loader type='rom'>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
|
<boot dev='cdrom'/>
|
||||||
|
</os>
|
||||||
|
<features>
|
||||||
|
<acpi/>
|
||||||
|
<apic/>
|
||||||
|
<pae/>
|
||||||
|
</features>
|
||||||
|
<cpu mode='host-passthrough'/>
|
||||||
|
<clock offset='variable' adjustment='0' basis='utc'/>
|
||||||
|
<on_poweroff>destroy</on_poweroff>
|
||||||
|
<on_reboot>restart</on_reboot>
|
||||||
|
<on_crash>restart</on_crash>
|
||||||
|
<devices>
|
||||||
|
<emulator>/usr/lib/xen/bin/qemu-system-i386</emulator>
|
||||||
|
<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>
|
||||||
|
<disk type='file' device='disk'>
|
||||||
|
<driver name='qemu' type='qcow2'/>
|
||||||
|
<source file='/var/lib/libvirt/images/XenGuest2-home'/>
|
||||||
|
<target dev='hdb' bus='ide'/>
|
||||||
|
<address type='drive' controller='0' bus='0' target='0' unit='1'/>
|
||||||
|
</disk>
|
||||||
|
<disk type='file' device='cdrom'>
|
||||||
|
<driver name='qemu' type='raw'/>
|
||||||
|
<source file='/root/boot.iso'/>
|
||||||
|
<target dev='hdc' bus='ide'/>
|
||||||
|
<readonly/>
|
||||||
|
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
|
||||||
|
</disk>
|
||||||
|
<controller type='ide' index='0'/>
|
||||||
|
<interface type='bridge'>
|
||||||
|
<mac address='00:16:3e:66:92:9c'/>
|
||||||
|
<source bridge='xenbr1'/>
|
||||||
|
<script path='vif-bridge'/>
|
||||||
|
<model type='e1000'/>
|
||||||
|
</interface>
|
||||||
|
<input type='mouse' bus='ps2'/>
|
||||||
|
<input type='keyboard' bus='ps2'/>
|
||||||
|
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'>
|
||||||
|
<listen type='address' address='127.0.0.1'/>
|
||||||
|
</graphics>
|
||||||
|
<video>
|
||||||
|
<model type='cirrus' vram='8192' heads='1' primary='yes'/>
|
||||||
|
</video>
|
||||||
|
</devices>
|
||||||
|
</domain>
|
@ -268,6 +268,8 @@ mymain(void)
|
|||||||
DO_TEST("fullvirt-hpet-timer");
|
DO_TEST("fullvirt-hpet-timer");
|
||||||
DO_TEST("fullvirt-tsc-timer");
|
DO_TEST("fullvirt-tsc-timer");
|
||||||
DO_TEST("fullvirt-multi-timer");
|
DO_TEST("fullvirt-multi-timer");
|
||||||
|
DO_TEST("fullvirt-nestedhvm");
|
||||||
|
DO_TEST("fullvirt-nestedhvm-disabled");
|
||||||
|
|
||||||
DO_TEST("paravirt-cmdline");
|
DO_TEST("paravirt-cmdline");
|
||||||
DO_TEST_FORMAT("paravirt-cmdline-extra-root", false);
|
DO_TEST_FORMAT("paravirt-cmdline-extra-root", false);
|
||||||
|
Loading…
Reference in New Issue
Block a user