libvirt/tests/libxlxml2domconfigdata
Laine Stump 9363c1cb69 xen: explicitly set hostdev driver.name at runtime, not in postparse
Xen only supports a single type of PCI hostdev assignment, so it is
superfluous to have <driver name='xen'/> peppered throughout the
config. It *is* necessary to have the driver type explicitly set in
the hostdev object before calling into the hypervisor-agnostic "hostdev
manager" though (otherwise the hostdev manager doesn't know whether it
should do Xen-specific setup, or VFIO-specific setup).

Historically, the Xen driver has checked for "default" driver name
(i.e. not set in the XML), and set it to "xen', during the XML
postparse, thus guaranteeing that it will be set by the time the
object is sent to the hostdev manager at runtime, but also setting it
so early that a simple round-trip of parse-format results in the XML
always containing an explicit <driver name='xen'/>, even if that
wasn't specified in the original XML.

The QEMU driver *doesn't* set driver.name during postparse though;
instead, it waits until domain startup time (or device attach time for
hotplug), and sets the driver.name then. The result is that a
parse-format round trip of the XML in the QEMU driver *doesn't* add in
the <driver name='vfio'/>.

This patch modifies the Xen driver to behave similarly to the QEMU
driver - the PostParse just checks for a driver.name that isn't
supported by the Xen driver, and any explicit setting to "xen" is
deferred until domain runtime rather than during the postparse, thus
Xen domain XML also doesn't get extraneous <driver name='xen'/>.

This delayed setting of driver.name of course results in slightly
different xml2xml parse-format results, so the unit test data is
modified accordingly.

Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2024-01-07 23:59:00 -05:00
..
basic-hvm.json tests: Fix libxlxml2domconfigtest with latest xen 2022-10-30 12:34:02 -04:00
basic-hvm.xml
basic-pv.json tests: Fix libxlxml2domconfigtest with latest xen 2022-10-30 12:34:02 -04:00
basic-pv.xml
basic-pvh.json tests: Fix libxlxml2domconfigtest with latest xen 2022-10-30 12:34:02 -04:00
basic-pvh.xml
cpu-shares-hvm.json tests: Fix libxlxml2domconfigtest with latest xen 2022-10-30 12:34:02 -04:00
cpu-shares-hvm.xml
efi-hvm.json libxl: Support specifying a custom firmware path 2023-03-10 11:01:42 -07:00
efi-hvm.xml libxl: Support specifying a custom firmware path 2023-03-10 11:01:42 -07:00
fullvirt-acpi-slic.json tests: Fix libxlxml2domconfigtest with latest xen 2022-10-30 12:34:02 -04:00
fullvirt-acpi-slic.xml
fullvirt-cpuid-legacy-nest.json tests: Fix libxlxml2domconfigtest with latest xen 2022-10-30 12:34:02 -04:00
fullvirt-cpuid-legacy-nest.xml
fullvirt-cpuid.json tests: Fix libxlxml2domconfigtest with latest xen 2022-10-30 12:34:02 -04:00
fullvirt-cpuid.xml
max-eventchannels-hvm.json tests: Fix libxlxml2domconfigtest with latest xen 2022-10-30 12:34:02 -04:00
max-eventchannels-hvm.xml
max-gntframes-hvm.json tests: Fix libxlxml2domconfigtest with latest xen 2022-10-30 12:34:02 -04:00
max-gntframes-hvm.xml
moredevs-hvm.json tests: Fix libxlxml2domconfigtest with latest xen 2022-10-30 12:34:02 -04:00
moredevs-hvm.xml xen: explicitly set hostdev driver.name at runtime, not in postparse 2024-01-07 23:59:00 -05:00
multiple-ip.json tests: Fix libxlxml2domconfigtest with latest xen 2022-10-30 12:34:02 -04:00
multiple-ip.xml
variable-clock-hvm.json tests: Fix libxlxml2domconfigtest with latest xen 2022-10-30 12:34:02 -04:00
variable-clock-hvm.xml
vnuma-hvm-legacy-nest.json tests: Fix libxlxml2domconfigtest with latest xen 2022-10-30 12:34:02 -04:00
vnuma-hvm-legacy-nest.xml
vnuma-hvm.json tests: Fix libxlxml2domconfigtest 2022-11-11 08:10:34 -07:00
vnuma-hvm.xml