This isn't exactly equivalent setting (acpi_firmware may point to non-SLIC ACPI table), but it's the most behavior preserving option. Signed-off-by: Marek Marczykowski-Górecki <marmarek@xxxxxxxxxxxxxxxxxxxxxx> --- src/libxl/xen_xl.c | 7 ++- tests/xlconfigdata/test-fullvirt-acpi-slic.cfg | 26 ++++++++- tests/xlconfigdata/test-fullvirt-acpi-slic.xml | 63 +++++++++++++++++++- tests/xlconfigtest.c | 1 +- 4 files changed, 97 insertions(+) create mode 100644 tests/xlconfigdata/test-fullvirt-acpi-slic.cfg create mode 100644 tests/xlconfigdata/test-fullvirt-acpi-slic.xml diff --git a/src/libxl/xen_xl.c b/src/libxl/xen_xl.c index 3a41a4a..015f0aa 100644 --- a/src/libxl/xen_xl.c +++ b/src/libxl/xen_xl.c @@ -134,6 +134,9 @@ xenParseXLOS(virConfPtr conf, virDomainDefPtr def, virCapsPtr caps) } } + if (xenConfigCopyStringOpt(conf, "acpi_firmware", &def->os.slic_table) < 0) + return -1; + #ifdef LIBXL_HAVE_BUILDINFO_KERNEL if (xenConfigCopyStringOpt(conf, "kernel", &def->os.kernel) < 0) return -1; @@ -1247,6 +1250,10 @@ xenFormatXLOS(virConfPtr conf, virDomainDefPtr def) return -1; } + if (def->os.slic_table && + xenConfigSetString(conf, "acpi_firmware", def->os.slic_table) < 0) + return -1; + #ifdef LIBXL_HAVE_BUILDINFO_KERNEL if (def->os.kernel && xenConfigSetString(conf, "kernel", def->os.kernel) < 0) diff --git a/tests/xlconfigdata/test-fullvirt-acpi-slic.cfg b/tests/xlconfigdata/test-fullvirt-acpi-slic.cfg new file mode 100644 index 0000000..99b1726 --- /dev/null +++ b/tests/xlconfigdata/test-fullvirt-acpi-slic.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" +acpi_firmware = "/sys/firmware/acpi/tables/SLIC" +boot = "d" +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-acpi-slic.xml b/tests/xlconfigdata/test-fullvirt-acpi-slic.xml new file mode 100644 index 0000000..9727422 --- /dev/null +++ b/tests/xlconfigdata/test-fullvirt-acpi-slic.xml @@ -0,0 +1,63 @@ +<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> + <acpi> + <table type='slic'>/sys/firmware/acpi/tables/SLIC</table> + </acpi> + <boot dev='cdrom'/> + </os> + <features> + <acpi/> + <apic/> + <pae/> + </features> + <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='xenbus' index='0'/> + <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> + <memballoon model='xen'/> + </devices> +</domain> diff --git a/tests/xlconfigtest.c b/tests/xlconfigtest.c index 80ac9b2..f49202d 100644 --- a/tests/xlconfigtest.c +++ b/tests/xlconfigtest.c @@ -266,6 +266,7 @@ mymain(void) DO_TEST("fullvirt-nestedhvm"); DO_TEST("fullvirt-nestedhvm-disabled"); DO_TEST("fullvirt-cpuid"); + DO_TEST("fullvirt-acpi-slic"); #ifdef LIBXL_HAVE_VNUMA DO_TEST("fullvirt-vnuma"); DO_TEST_PARSE("fullvirt-vnuma-autocomplete", false); -- git-series 0.9.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list