On 2/26/25 21:16, Daniel P. Berrangé wrote:
> 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
>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Michal