This was triggered by a request by KubeVirt in https://gitlab.com/libvirt/libvirt/-/issues/748 I've not functionally tested this, since I lack any suitable guest windows environment this is looking for MSDM tables, nor does my machine have MSDM ACPI tables to pass to a guest. I'm blindly assuming that the QEMU CLI code is identical except for s/SLIC/MSDM/. In this 2nd version I've addressed two further issues * the xen driver was incorrectly mapping its 'acpi_firmware' option to type=slic. Xen's setting accepts a concatenation of tables of any type. This is different from type=slic which represents a single table, whose type will be forced to 'SLIC' if not already set. To address this we introduce a new 'rawset' type * The QEMU driver does not require a type to be set in the first place; if set it merely overrides what is in the data file. Supporting this would let us handle any ACPI table type without further XML changes. To address this we introduce a new 'raw' type, which can occur many times. Daniel P. Berrangé (7): conf: introduce support for multiple ACPI tables src: validate permitted ACPI table types in libxl/qemu drivers src: introduce 'raw' and 'rawset' ACPI table types qemu: support 'raw' ACPI table type libxl: support 'rawset' ACPI table type conf: support MSDM ACPI table type qemu: support MSDM ACPI table type docs/formatdomain.rst | 23 ++++- src/conf/domain_conf.c | 94 ++++++++++++++----- src/conf/domain_conf.h | 24 ++++- src/conf/schemas/domaincommon.rng | 7 +- src/libvirt_private.syms | 2 + src/libxl/libxl_conf.c | 5 +- src/libxl/libxl_domain.c | 28 ++++++ src/libxl/xen_xl.c | 15 ++- src/qemu/qemu_command.c | 18 +++- src/qemu/qemu_validate.c | 23 +++++ src/security/security_dac.c | 18 ++-- src/security/security_selinux.c | 16 ++-- src/security/virt-aa-helper.c | 5 +- .../acpi-table-many.x86_64-latest.args | 37 ++++++++ .../acpi-table-many.x86_64-latest.xml | 42 +++++++++ tests/qemuxmlconfdata/acpi-table-many.xml | 34 +++++++ tests/qemuxmlconftest.c | 1 + .../xlconfigdata/test-fullvirt-acpi-slic.xml | 2 +- 18 files changed, 337 insertions(+), 57 deletions(-) create mode 100644 tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.args create mode 100644 tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.xml create mode 100644 tests/qemuxmlconfdata/acpi-table-many.xml -- 2.47.1