[PATCH v2] util: basic support for VFIO variant drivers
by Laine Stump
Before a PCI device can be assigned to a guest with VFIO, that device
must be bound to the vfio-pci driver rather than to the device's
normal driver. The vfio-pci driver provides APIs that permit QEMU to
perform all the necessary operations to make the device accessible to
the guest.
There has been kernel work recently to support vendor/device-specific
VFIO variant drivers that provide the basic vfio-pci driver functionality
while adding support for device-specific operations (for example these
device-specific drivers are planned to support live migration of
certain devices). All that will be needed to make this functionality
available will be to bind the new vendor-specific driver to the device
(rather than the generic vfio-pci driver, which will continue to work
just without the extra functionality).
But until now libvirt has required that all PCI devices being assigned
to a guest with VFIO specifically have the "vfio-pci" driver bound to
the device. So even if the user manually binds a shiny new
vendor-specific vfio variant driver to the device (and puts
"managed='no'" in the config to prevent libvirt from changing the
binding), libvirt will just fail during startup of the guest (or
during hotplug) because the driver bound to the device isn't exactly
"vfio-pci".
This patch loosens that restriction a bit - rather than requiring that
the device be bound to "vfio-pci", it also checks if the drivername
contains the string "vfio" at all, and in this case allows the
operation to continue. If the driver is in fact a VFIO variant, then
the assignment will succeed, but if it is not a VFIO variant then QEMU
will fail (and report the error back to libvirt).
In the near future (possibly by kernel 6.0) there will be a
formal method of identifying a VFIO variant driver by looking in
sysfs; in the meantime the inexact, but simple, method in this patch
will allow users of the few existing VFIO variant drivers (and
developers of new VFIO variant drivers) to use their new drivers
without needing to remove libvirt from their setup - they can simply
pre-bind the device to the new driver, then use "managed='no'" in
their libvirt config.
NB: this patch does *not* handle automatically determining the proper
vendor-specific driver and binding to it in the case of
"managed='yes'". This will be implemented later when there is a widely
available driver / device combo we can use for testing.
Signed-off-by: Laine Stump <laine(a)redhat.com>
---
V1 here: https://listman.redhat.com/archives/libvir-list/2022-August/233327.html
Change in V2:
V1 used the output of modinfo to look for "vfio_pci" as an alias for a
driver to see if it was a VFIO variant driver.
As a result of discussion of V1, V2 is much simpler - it just assumes
that any driver with "vfio" in the name is a VFIO variant. This is
okay because 1) QEMU will still catch it and libvirt will properly log
the error if the driver isn't actually a VFIO variant, and 2) it's a
temporary situation, just to enable use of VFIO variant drivers with
libvirt until a standard method of detecting this is added to sysfs
(which, according to the discussion of V1, is coming in the near
future).
(NB: I did implement checking of /lib/modules/`uname -r`/modules.alias
as suggested by Erik, but it turned out that this caused the unit
tests to call uname(3) and open the modules.alias file on the test
host - for a proper unit test I would have also needed to mock these
two functions, and it seemed like too much complexity for a temporary
workaround. I've implemented Jason's suggestion here (accept any
driver with "vfio" in the name), which is similar to danpb's
suggestion (accept specifically the two drivers that are already in
the upstream kernel), but will also allow for new drivers that may be
under development.)
src/hypervisor/virhostdev.c | 26 ++++---------
src/util/virpci.c | 76 ++++++++++++++++++++++++++++++++++---
src/util/virpci.h | 3 ++
3 files changed, 82 insertions(+), 23 deletions(-)
diff --git a/src/hypervisor/virhostdev.c b/src/hypervisor/virhostdev.c
index c0ce867596..15b35fa75e 100644
--- a/src/hypervisor/virhostdev.c
+++ b/src/hypervisor/virhostdev.c
@@ -747,9 +747,8 @@ virHostdevPreparePCIDevicesImpl(virHostdevManager *mgr,
mgr->inactivePCIHostdevs) < 0)
goto reattachdevs;
} else {
- g_autofree char *driverPath = NULL;
- g_autofree char *driverName = NULL;
- int stub;
+ g_autofree char *drvName = NULL;
+ virPCIStubDriver drvType;
/* Unmanaged devices should already have been marked as
* inactive: if that's the case, we can simply move on */
@@ -769,18 +768,14 @@ virHostdevPreparePCIDevicesImpl(virHostdevManager *mgr,
* information about active / inactive device across
* daemon restarts has been implemented */
- if (virPCIDeviceGetDriverPathAndName(pci,
- &driverPath, &driverName) < 0)
+ if (virPCIDeviceGetDriverNameAndType(pci, &drvName, &drvType) < 0)
goto reattachdevs;
- stub = virPCIStubDriverTypeFromString(driverName);
-
- if (stub > VIR_PCI_STUB_DRIVER_NONE &&
- stub < VIR_PCI_STUB_DRIVER_LAST) {
+ if (drvType > VIR_PCI_STUB_DRIVER_NONE) {
/* The device is bound to a known stub driver: store this
* information and add a copy to the inactive list */
- virPCIDeviceSetStubDriver(pci, stub);
+ virPCIDeviceSetStubDriver(pci, drvType);
VIR_DEBUG("Adding PCI device %s to inactive list",
virPCIDeviceGetName(pci));
@@ -2292,18 +2287,13 @@ virHostdevPrepareOneNVMeDevice(virHostdevManager *hostdev_mgr,
/* Let's check if all PCI devices are NVMe disks. */
for (i = 0; i < virPCIDeviceListCount(pciDevices); i++) {
virPCIDevice *pci = virPCIDeviceListGet(pciDevices, i);
- g_autofree char *drvPath = NULL;
g_autofree char *drvName = NULL;
- int stub = VIR_PCI_STUB_DRIVER_NONE;
+ virPCIStubDriver drvType;
- if (virPCIDeviceGetDriverPathAndName(pci, &drvPath, &drvName) < 0)
+ if (virPCIDeviceGetDriverNameAndType(pci, &drvName, &drvType) < 0)
goto cleanup;
- if (drvName)
- stub = virPCIStubDriverTypeFromString(drvName);
-
- if (stub == VIR_PCI_STUB_DRIVER_VFIO ||
- STREQ_NULLABLE(drvName, "nvme"))
+ if (drvType == VIR_PCI_STUB_DRIVER_VFIO || STREQ_NULLABLE(drvName, "nvme"))
continue;
VIR_WARN("Suspicious NVMe disk assignment. PCI device "
diff --git a/src/util/virpci.c b/src/util/virpci.c
index 7800966963..51ccf4d9fd 100644
--- a/src/util/virpci.c
+++ b/src/util/virpci.c
@@ -277,6 +277,71 @@ virPCIDeviceGetDriverPathAndName(virPCIDevice *dev, char **path, char **name)
}
+/**
+ * virPCIDeviceGetDriverNameAndType:
+ * @dev: virPCIDevice object to examine
+ * @drvName: returns name of driver bound to this device (if any)
+ * @drvType: returns type of driver if it is a known stub driver type
+ *
+ * Find the name of the driver bound to @dev (if any) and the type of
+ * the driver if it is a known/recognized "stub" driver (based on the
+ * driver name).
+ *
+ * There are vfio "variant" drivers that provide all the basic
+ * functionality of the standard vfio-pci driver as well as additional
+ * stuff. There is a plan to add info to sysfs that will allow easily
+ * determining if a driver is a vfio variant driver, but that sysfs
+ * entry isn't yet available. In the meantime as a workaround so that
+ * the few existing vfio variant drivers can be used with libvirt, and
+ * so that driver developers can test their new vfio variant drivers
+ * without needing to bypass libvirt, we also check if the driver name
+ * contains the string "vfio"; if it does, then we consider this drier
+ * as type VFIO. This can lead to false positives, but that isn't a
+ * horrible thing, because the problem will still be caught by QEMU as
+ * soon as libvirt makes the request to attach the device.
+ *
+ * Return 0 on success, -1 on failure. If -1 is returned, then an error
+ * message has been logged.
+ */
+int
+virPCIDeviceGetDriverNameAndType(virPCIDevice *dev,
+ char **drvName,
+ virPCIStubDriver *drvType)
+{
+ g_autofree char *drvPath = NULL;
+ int tmpType;
+
+ if (virPCIDeviceGetDriverPathAndName(dev, &drvPath, drvName) < 0)
+ return -1;
+
+ if (!*drvName) {
+ *drvType = VIR_PCI_STUB_DRIVER_NONE;
+ return 0;
+ }
+
+ tmpType = virPCIStubDriverTypeFromString(*drvName);
+
+ if (tmpType > VIR_PCI_STUB_DRIVER_NONE) {
+ *drvType = tmpType;
+ return 0; /* exact match of a known driver name (or no name) */
+ }
+
+ /* Check if the drivername contains "vfio" and count as a VFIO
+ * driver if so - see above for explanation.
+ */
+
+ if (strstr(*drvName, "vfio")) {
+ VIR_DEBUG("Driver %s is a vfio_pci driver", *drvName);
+ *drvType = VIR_PCI_STUB_DRIVER_VFIO;
+ } else {
+ VIR_DEBUG("Driver %s is NOT a vfio_pci driver", *drvName);
+ *drvType = VIR_PCI_STUB_DRIVER_NONE;
+ }
+
+ return 0;
+}
+
+
static int
virPCIDeviceConfigOpenInternal(virPCIDevice *dev, bool readonly, bool fatal)
{
@@ -1004,8 +1069,8 @@ virPCIDeviceReset(virPCIDevice *dev,
virPCIDeviceList *activeDevs,
virPCIDeviceList *inactiveDevs)
{
- g_autofree char *drvPath = NULL;
g_autofree char *drvName = NULL;
+ virPCIStubDriver drvType;
int ret = -1;
int fd = -1;
int hdrType = -1;
@@ -1032,15 +1097,16 @@ virPCIDeviceReset(virPCIDevice *dev,
* reset it whenever appropriate, so doing it ourselves would just
* be redundant.
*/
- if (virPCIDeviceGetDriverPathAndName(dev, &drvPath, &drvName) < 0)
+ if (virPCIDeviceGetDriverNameAndType(dev, &drvName, &drvType) < 0)
goto cleanup;
- if (virPCIStubDriverTypeFromString(drvName) == VIR_PCI_STUB_DRIVER_VFIO) {
- VIR_DEBUG("Device %s is bound to vfio-pci - skip reset",
- dev->name);
+ if (drvType == VIR_PCI_STUB_DRIVER_VFIO) {
+
+ VIR_DEBUG("Device %s is bound to %s - skip reset", dev->name, drvName);
ret = 0;
goto cleanup;
}
+
VIR_DEBUG("Resetting device %s", dev->name);
if ((fd = virPCIDeviceConfigOpenWrite(dev)) < 0)
diff --git a/src/util/virpci.h b/src/util/virpci.h
index 4d9193f24e..0532b90f90 100644
--- a/src/util/virpci.h
+++ b/src/util/virpci.h
@@ -280,6 +280,9 @@ int virPCIDeviceRebind(virPCIDevice *dev);
int virPCIDeviceGetDriverPathAndName(virPCIDevice *dev,
char **path,
char **name);
+int virPCIDeviceGetDriverNameAndType(virPCIDevice *dev,
+ char **drvName,
+ virPCIStubDriver *drvType);
int virPCIDeviceIsPCIExpress(virPCIDevice *dev);
int virPCIDeviceHasPCIExpressLink(virPCIDevice *dev);
--
2.37.1
1 year, 10 months
[PATCH v1 0/3] Make virtio-mem and virtio-pmem address stable
by Michal Privoznik
*** BLURB HERE ***
Michal Prívozník (3):
conf: Introduce <address/> for virtio-mem and virtio-pmem
qemu: Fill virtio-mem/virtio-pmem .memaddr at runtime
qemu_command: Generate .memaddr for virtio-mem and virtio-pmem
docs/formatdomain.rst | 7 ++++++
src/conf/domain_conf.c | 24 ++++++++++++++++++-
src/conf/domain_conf.h | 2 ++
src/conf/domain_validate.c | 6 +++++
src/conf/schemas/domaincommon.rng | 7 ++++++
src/qemu/qemu_command.c | 1 +
src/qemu/qemu_domain.c | 7 ++++--
src/qemu/qemu_monitor_json.c | 12 ++++++++--
...mory-hotplug-virtio-mem.x86_64-latest.args | 2 +-
.../memory-hotplug-virtio-mem.xml | 1 +
...mory-hotplug-virtio-pmem.x86_64-5.2.0.args | 2 +-
...ory-hotplug-virtio-pmem.x86_64-latest.args | 2 +-
.../memory-hotplug-virtio-pmem.xml | 1 +
13 files changed, 66 insertions(+), 8 deletions(-)
--
2.39.2
1 year, 10 months
[PATCH 0/7] qemu: Don't use deprecated '-no-acpi' and RFC: fix ACPI config for machine types not supporting ACPI
by Peter Krempa
The first part of the series is a straightforward replacement of
'-no-acpi' by '-machine acpi=on/off' based on configuration.
'-no-acpi' was recently deprecated by qemu thus we must adapt.
The second part of this series fixes the use of ACPI (or lack thereof)
for ARM machine types which don't support ACPI. We'll break such
commandline by adding '-no-acpi' due to historical baggage.
The second part is RFC as it's based on a qemu patch I'll be posting
along this series. This posting will also illustrate to qemu devs how
libvirt itends to use the added information.
I'll post the link to the qemu patch once I submit it.
Peter Krempa (7):
qemu: capabilities: Introduce QEMU_CAPS_MACHINE_ACPI
qemu: Use '-machine acpi=on/off' instead of deprecated '-no-acpi'
qemu: capabilities: Refactor XML parsing in virQEMUCapsLoadMachines
RFC BELOW:
qemu: capabilities: Extract whether machine type supports ACPI
qemu: capabilities: Introduce virQEMUCapsMachineSupportsACPI
XXX: tests: qemucapabilitiesdata: Regenerate with support for 'acpi'
in 'query-machines'
qemu: command: Don't format '-machine acpi=off' for machine types not
supporting ACPI
src/qemu/qemu_capabilities.c | 89 ++--
src/qemu/qemu_capabilities.h | 4 +
src/qemu/qemu_capspriv.h | 3 +-
src/qemu/qemu_command.c | 51 ++
src/qemu/qemu_monitor.h | 1 +
src/qemu/qemu_monitor_json.c | 12 +
.../caps_4.2.0.x86_64.xml | 2 +-
.../caps_5.0.0.x86_64.xml | 2 +-
.../caps_5.1.0.x86_64.xml | 2 +-
.../caps_5.2.0.x86_64.xml | 2 +-
.../caps_6.0.0.x86_64.xml | 2 +-
.../caps_6.1.0.x86_64.xml | 2 +-
.../caps_6.2.0.aarch64.xml | 2 +-
.../qemucapabilitiesdata/caps_6.2.0.ppc64.xml | 1 +
.../caps_6.2.0.x86_64.xml | 2 +-
.../caps_7.0.0.aarch64.xml | 2 +-
.../qemucapabilitiesdata/caps_7.0.0.ppc64.xml | 1 +
.../caps_7.0.0.x86_64.xml | 2 +-
.../qemucapabilitiesdata/caps_7.1.0.ppc64.xml | 1 +
.../caps_7.1.0.x86_64.xml | 2 +-
.../caps_7.2.0.x86_64.xml | 2 +-
.../caps_8.0.0.x86_64.replies | 471 ++++++++++++------
.../caps_8.0.0.x86_64.xml | 244 ++++-----
...fault-cpu-kvm-virt-4.2.aarch64-latest.args | 3 +-
...fault-cpu-tcg-virt-4.2.aarch64-latest.args | 3 +-
.../aarch64-features-sve.aarch64-latest.args | 3 +-
.../aarch64-tpm.aarch64-latest.args | 3 +-
.../aarch64-virt-graphics.aarch64-latest.args | 2 +-
.../aarch64-virt-headless.aarch64-latest.args | 2 +-
...h64-virtio-pci-default.aarch64-latest.args | 3 +-
.../audio-alsa-best.x86_64-latest.args | 3 +-
.../audio-alsa-full.x86_64-latest.args | 3 +-
.../audio-alsa-minimal.x86_64-latest.args | 3 +-
.../audio-coreaudio-best.x86_64-latest.args | 3 +-
.../audio-coreaudio-full.x86_64-latest.args | 3 +-
...audio-coreaudio-minimal.x86_64-latest.args | 3 +-
...udio-default-nographics.x86_64-latest.args | 3 +-
.../audio-default-sdl.x86_64-latest.args | 3 +-
.../audio-default-spice.x86_64-latest.args | 3 +-
.../audio-default-vnc.x86_64-latest.args | 3 +-
.../audio-file-best.x86_64-latest.args | 3 +-
.../audio-file-full.x86_64-latest.args | 3 +-
.../audio-file-minimal.x86_64-latest.args | 3 +-
.../audio-jack-full.x86_64-latest.args | 3 +-
.../audio-jack-minimal.x86_64-latest.args | 3 +-
.../audio-many-backends.x86_64-latest.args | 3 +-
.../audio-none-best.x86_64-latest.args | 3 +-
.../audio-none-full.x86_64-latest.args | 3 +-
.../audio-none-minimal.x86_64-latest.args | 3 +-
.../audio-oss-best.x86_64-latest.args | 3 +-
.../audio-oss-full.x86_64-latest.args | 3 +-
.../audio-oss-minimal.x86_64-latest.args | 3 +-
.../audio-pulseaudio-best.x86_64-latest.args | 3 +-
.../audio-pulseaudio-full.x86_64-latest.args | 3 +-
...udio-pulseaudio-minimal.x86_64-latest.args | 3 +-
.../audio-sdl-best.x86_64-latest.args | 3 +-
.../audio-sdl-full.x86_64-latest.args | 3 +-
.../audio-sdl-minimal.x86_64-latest.args | 3 +-
.../audio-spice-best.x86_64-latest.args | 3 +-
.../audio-spice-full.x86_64-latest.args | 3 +-
.../audio-spice-minimal.x86_64-latest.args | 3 +-
.../blkdeviotune-group-num.x86_64-latest.args | 3 +-
...blkdeviotune-max-length.x86_64-latest.args | 3 +-
.../blkdeviotune-max.x86_64-latest.args | 3 +-
.../blkdeviotune.x86_64-latest.args | 3 +-
.../boot-cdrom.x86_64-latest.args | 3 +-
.../boot-complex.x86_64-latest.args | 3 +-
.../boot-floppy-q35.x86_64-latest.args | 3 +-
.../boot-floppy.x86_64-latest.args | 3 +-
...boot-menu-disable-drive.x86_64-latest.args | 3 +-
.../boot-menu-disable.x86_64-latest.args | 3 +-
...enu-enable-with-timeout.x86_64-latest.args | 3 +-
.../boot-menu-enable.x86_64-latest.args | 3 +-
.../boot-multi.x86_64-latest.args | 3 +-
.../boot-network.x86_64-latest.args | 3 +-
.../boot-order.x86_64-latest.args | 3 +-
...l-qemu-vdagent-features.x86_64-latest.args | 3 +-
.../channel-qemu-vdagent.x86_64-latest.args | 3 +-
.../channel-unix-guestfwd.x86_64-latest.args | 3 +-
.../clock-absolute.x86_64-latest.args | 3 +-
.../clock-timer-armvtimer.aarch64-latest.args | 3 +-
.../console-compat-auto.x86_64-latest.args | 3 +-
.../console-compat-chardev.x86_64-latest.args | 3 +-
.../console-compat.x86_64-latest.args | 3 +-
.../console-virtio-unix.x86_64-latest.args | 3 +-
.../controller-usb-order.x86_64-latest.args | 3 +-
.../controller-virtio-scsi.x86_64-latest.args | 3 +-
...-Icelake-Server-pconfig.x86_64-latest.args | 3 +-
.../cpu-eoi-disabled.x86_64-latest.args | 2 +-
.../cpu-eoi-enabled.x86_64-latest.args | 2 +-
.../cpu-host-model.x86_64-4.2.0.args | 3 +-
.../cpu-host-model.x86_64-5.0.0.args | 3 +-
.../cpu-host-model.x86_64-5.1.0.args | 3 +-
.../cpu-host-model.x86_64-5.2.0.args | 3 +-
.../cpu-host-model.x86_64-6.0.0.args | 3 +-
.../cpu-host-model.x86_64-6.1.0.args | 3 +-
.../cpu-host-model.x86_64-latest.args | 3 +-
.../cpu-translation.x86_64-latest.args | 3 +-
.../cputune-cpuset-big-id.x86_64-latest.args | 3 +-
.../crypto-builtin.x86_64-latest.args | 3 +-
...ult-video-type-aarch64.aarch64-latest.args | 3 +-
...default-video-type-ppc64.ppc64-latest.args | 2 +-
.../devices-acpi-index.x86_64-latest.args | 2 +-
.../disk-aio-io_uring.x86_64-latest.args | 3 +-
.../disk-aio.x86_64-latest.args | 3 +-
.../disk-arm-virtio-sd.aarch64-latest.args | 3 +-
...-backing-chains-noindex.x86_64-latest.args | 3 +-
.../disk-blockio.x86_64-latest.args | 3 +-
.../disk-boot-cdrom.x86_64-latest.args | 3 +-
.../disk-boot-disk.x86_64-latest.args | 3 +-
.../disk-cache.x86_64-latest.args | 3 +-
.../disk-cdrom-bus-other.x86_64-latest.args | 3 +-
...m-empty-network-invalid.x86_64-latest.args | 3 +-
.../disk-cdrom-network.x86_64-latest.args | 2 +-
.../disk-cdrom-tray.x86_64-latest.args | 3 +-
.../disk-cdrom.x86_64-latest.args | 3 +-
.../disk-copy_on_read.x86_64-latest.args | 3 +-
.../disk-detect-zeroes.x86_64-latest.args | 3 +-
.../disk-discard.x86_64-latest.args | 3 +-
.../disk-error-policy.x86_64-latest.args | 3 +-
.../disk-floppy-q35.x86_64-latest.args | 3 +-
.../disk-floppy-tray.x86_64-latest.args | 3 +-
.../disk-floppy.x86_64-latest.args | 3 +-
.../disk-fmt-qcow.x86_64-latest.args | 3 +-
.../disk-geometry.x86_64-latest.args | 3 +-
.../disk-ide-split.x86_64-latest.args | 3 +-
.../disk-ide-wwn.x86_64-latest.args | 3 +-
.../disk-ioeventfd.x86_64-latest.args | 3 +-
.../disk-metadata-cache.x86_64-latest.args | 3 +-
.../disk-network-gluster.x86_64-latest.args | 3 +-
.../disk-network-http.x86_64-latest.args | 3 +-
.../disk-network-iscsi.x86_64-latest.args | 3 +-
.../disk-network-nbd.x86_64-latest.args | 3 +-
.../disk-network-nfs.x86_64-latest.args | 3 +-
...-network-rbd-encryption.x86_64-latest.args | 3 +-
...sk-network-rbd-no-colon.x86_64-latest.args | 3 +-
.../disk-network-rbd.x86_64-latest.args | 3 +-
.../disk-network-sheepdog.x86_64-6.0.0.args | 3 +-
...isk-network-source-auth.x86_64-latest.args | 3 +-
...rk-tlsx509-nbd-hostname.x86_64-latest.args | 3 +-
...disk-network-tlsx509-nbd.x86_64-5.2.0.args | 3 +-
...isk-network-tlsx509-nbd.x86_64-latest.args | 3 +-
...isk-network-tlsx509-vxhs.x86_64-5.0.0.args | 3 +-
.../disk-no-boot.x86_64-latest.args | 3 +-
.../disk-nvme.x86_64-latest.args | 3 +-
.../disk-order.x86_64-latest.args | 3 +-
.../disk-readonly-disk.x86_64-latest.args | 3 +-
.../disk-rotation.x86_64-latest.args | 3 +-
.../disk-sata-device.x86_64-latest.args | 3 +-
.../disk-scsi-device-auto.x86_64-latest.args | 3 +-
.../disk-scsi-disk-split.x86_64-latest.args | 3 +-
.../disk-scsi-disk-vpd.x86_64-latest.args | 3 +-
.../disk-scsi-disk-wwn.x86_64-latest.args | 3 +-
...sk-scsi-lun-passthrough.x86_64-latest.args | 3 +-
.../disk-scsi.x86_64-latest.args | 3 +-
.../disk-serial.x86_64-latest.args | 3 +-
.../disk-shared.x86_64-latest.args | 3 +-
.../disk-slices.x86_64-latest.args | 3 +-
.../disk-snapshot.x86_64-latest.args | 3 +-
.../disk-source-fd.x86_64-latest.args | 3 +-
.../disk-source-pool-mode.x86_64-latest.args | 3 +-
.../disk-source-pool.x86_64-latest.args | 3 +-
.../disk-transient.x86_64-latest.args | 3 +-
...sk-usb-device-removable.x86_64-latest.args | 3 +-
.../disk-usb-device.x86_64-latest.args | 3 +-
.../disk-vhostuser-numa.x86_64-4.2.0.args | 3 +-
.../disk-vhostuser-numa.x86_64-latest.args | 3 +-
.../disk-vhostuser.x86_64-latest.args | 3 +-
.../disk-virtio-queues.x86_64-latest.args | 3 +-
...virtio-scsi-reservations.x86_64-5.2.0.args | 3 +-
...irtio-scsi-reservations.x86_64-latest.args | 3 +-
.../disk-virtio.x86_64-latest.args | 3 +-
.../encrypted-disk-usage.x86_64-latest.args | 3 +-
.../encrypted-disk.x86_64-latest.args | 3 +-
.../eoi-disabled.x86_64-latest.args | 2 +-
.../eoi-enabled.x86_64-latest.args | 2 +-
.../event_idx.x86_64-latest.args | 3 +-
...d-memory-numa-topology4.x86_64-latest.args | 3 +-
.../fips-enabled.x86_64-5.1.0.args | 3 +-
.../fips-enabled.x86_64-latest.args | 3 +-
...are-auto-bios-stateless.x86_64-latest.args | 2 +-
.../firmware-auto-bios.x86_64-latest.args | 2 +-
...mware-auto-efi-aarch64.aarch64-latest.args | 2 +-
...-auto-efi-enrolled-keys.x86_64-latest.args | 2 +-
...-auto-efi-loader-secure.x86_64-latest.args | 2 +-
...to-efi-no-enrolled-keys.x86_64-latest.args | 2 +-
...are-auto-efi-no-secboot.x86_64-latest.args | 2 +-
...firmware-auto-efi-nvram.x86_64-latest.args | 2 +-
...rmware-auto-efi-secboot.x86_64-latest.args | 2 +-
...ware-auto-efi-stateless.x86_64-latest.args | 2 +-
.../firmware-auto-efi.x86_64-latest.args | 2 +-
...manual-bios-rw-implicit.x86_64-latest.args | 2 +-
...firmware-manual-bios-rw.x86_64-latest.args | 2 +-
...e-manual-efi-nvram-file.x86_64-latest.args | 2 +-
...efi-nvram-network-iscsi.x86_64-latest.args | 2 +-
...l-efi-nvram-network-nbd.x86_64-latest.args | 2 +-
...nual-efi-nvram-template.x86_64-latest.args | 2 +-
...re-manual-efi-stateless.x86_64-latest.args | 2 +-
.../floppy-drive-fat.x86_64-latest.args | 3 +-
.../qemuxml2argvdata/fs9p.x86_64-latest.args | 3 +-
.../genid-auto.x86_64-latest.args | 2 +-
.../qemuxml2argvdata/genid.x86_64-latest.args | 2 +-
...egl-headless-rendernode.x86_64-latest.args | 3 +-
.../graphics-egl-headless.x86_64-latest.args | 3 +-
...s-spice-agent-file-xfer.x86_64-latest.args | 3 +-
...aphics-spice-agentmouse.x86_64-latest.args | 3 +-
...s-spice-auto-socket-cfg.x86_64-latest.args | 3 +-
...phics-spice-auto-socket.x86_64-latest.args | 3 +-
...phics-spice-compression.x86_64-latest.args | 3 +-
...hics-spice-egl-headless.x86_64-latest.args | 3 +-
...pice-gl-auto-rendernode.x86_64-latest.args | 3 +-
.../graphics-spice-no-args.x86_64-latest.args | 3 +-
.../graphics-spice-qxl-vga.x86_64-latest.args | 3 +-
.../graphics-spice-sasl.x86_64-latest.args | 3 +-
.../graphics-spice-socket.x86_64-latest.args | 3 +-
.../graphics-spice-timeout.x86_64-latest.args | 2 +-
...raphics-spice-usb-redir.x86_64-latest.args | 3 +-
.../graphics-spice.x86_64-latest.args | 3 +-
...ics-vnc-auto-socket-cfg.x86_64-latest.args | 3 +-
...raphics-vnc-auto-socket.x86_64-latest.args | 3 +-
...aphics-vnc-egl-headless.x86_64-latest.args | 3 +-
...hics-vnc-no-listen-attr.x86_64-latest.args | 3 +-
.../graphics-vnc-none.x86_64-latest.args | 3 +-
.../graphics-vnc-policy.x86_64-latest.args | 3 +-
.../graphics-vnc-power.x86_64-latest.args | 3 +-
...remove-generated-socket.x86_64-latest.args | 3 +-
.../graphics-vnc-sasl.x86_64-latest.args | 3 +-
...-vnc-socket-new-cmdline.x86_64-latest.args | 3 +-
.../graphics-vnc-socket.x86_64-latest.args | 3 +-
.../graphics-vnc-tls-secret.x86_64-5.2.0.args | 3 +-
...graphics-vnc-tls-secret.x86_64-latest.args | 3 +-
.../graphics-vnc-tls.x86_64-latest.args | 3 +-
.../graphics-vnc-websocket.x86_64-latest.args | 3 +-
.../graphics-vnc.x86_64-latest.args | 3 +-
...tdev-mdev-display-ramfb.x86_64-latest.args | 3 +-
...play-spice-egl-headless.x86_64-latest.args | 3 +-
...ev-display-spice-opengl.x86_64-latest.args | 3 +-
...isplay-vnc-egl-headless.x86_64-latest.args | 3 +-
...ostdev-mdev-display-vnc.x86_64-latest.args | 3 +-
...tdev-pci-address-device.x86_64-latest.args | 3 +-
.../hostdev-pci-address.x86_64-latest.args | 3 +-
.../hostdev-scsi-lsi.x86_64-latest.args | 3 +-
...dev-scsi-vhost-scsi-pcie.x86_64-4.2.0.args | 3 +-
...ev-scsi-vhost-scsi-pcie.x86_64-latest.args | 3 +-
...ostdev-scsi-virtio-scsi.x86_64-latest.args | 3 +-
...usb-address-device-boot.x86_64-latest.args | 3 +-
...tdev-usb-address-device.x86_64-latest.args | 3 +-
.../hostdev-usb-address.x86_64-latest.args | 3 +-
.../hugepages-default-2M.x86_64-latest.args | 3 +-
...ges-default-system-size.x86_64-latest.args | 3 +-
.../hugepages-default.x86_64-latest.args | 3 +-
.../hugepages-memaccess.x86_64-latest.args | 3 +-
.../hugepages-memaccess2.x86_64-latest.args | 3 +-
.../hugepages-memaccess3.x86_64-latest.args | 3 +-
.../hugepages-nodeset.x86_64-latest.args | 3 +-
...gepages-numa-default-2M.x86_64-latest.args | 3 +-
...pages-numa-default-dimm.x86_64-latest.args | 3 +-
.../hugepages-numa-default.x86_64-latest.args | 3 +-
...pages-numa-nodeset-part.x86_64-latest.args | 3 +-
.../hugepages-numa-nodeset.x86_64-latest.args | 3 +-
.../hugepages-nvdimm.x86_64-latest.args | 3 +-
.../hugepages-shared.x86_64-latest.args | 3 +-
.../hyperv-off.x86_64-latest.args | 2 +-
.../hyperv-panic.x86_64-latest.args | 2 +-
.../hyperv-passthrough.x86_64-6.1.0.args | 2 +-
.../hyperv-passthrough.x86_64-latest.args | 2 +-
.../hyperv-stimer-direct.x86_64-latest.args | 2 +-
.../hyperv.x86_64-latest.args | 2 +-
.../input-linux.x86_64-latest.args | 3 +-
.../intel-iommu-aw-bits.x86_64-latest.args | 3 +-
...ntel-iommu-caching-mode.x86_64-latest.args | 3 +-
...ntel-iommu-device-iotlb.x86_64-latest.args | 3 +-
.../intel-iommu-eim.x86_64-latest.args | 3 +-
.../intel-iommu.x86_64-latest.args | 3 +-
.../iommu-smmuv3.aarch64-latest.args | 3 +-
...othreads-ids-pool-sizes.x86_64-latest.args | 3 +-
...othreads-virtio-scsi-pci.x86_64-5.2.0.args | 3 +-
...threads-virtio-scsi-pci.x86_64-latest.args | 3 +-
.../kvmclock+eoi-disabled.x86_64-latest.args | 2 +-
...nch-security-sev-direct.x86_64-latest.args | 3 +-
...ev-missing-platform-info.x86_64-6.0.0.args | 3 +-
.../launch-security-sev.x86_64-6.0.0.args | 3 +-
.../luks-disks-source-qcow2.x86_64-5.2.0.args | 3 +-
...luks-disks-source-qcow2.x86_64-latest.args | 3 +-
.../luks-disks-source.x86_64-latest.args | 3 +-
.../luks-disks.x86_64-latest.args | 3 +-
.../machine-smm-off.x86_64-latest.args | 3 +-
.../machine-smm-on.x86_64-latest.args | 3 +-
...memory-default-hugepage.x86_64-latest.args | 3 +-
.../memfd-memory-numa.x86_64-latest.args | 3 +-
...emory-hotplug-dimm-addr.x86_64-latest.args | 3 +-
...y-hotplug-nvdimm-access.x86_64-latest.args | 3 +-
...ory-hotplug-nvdimm-align.x86_64-5.2.0.args | 3 +-
...ry-hotplug-nvdimm-align.x86_64-latest.args | 3 +-
...ory-hotplug-nvdimm-label.x86_64-5.2.0.args | 3 +-
...ry-hotplug-nvdimm-label.x86_64-latest.args | 3 +-
...mory-hotplug-nvdimm-pmem.x86_64-5.2.0.args | 3 +-
...ory-hotplug-nvdimm-pmem.x86_64-latest.args | 3 +-
...-hotplug-nvdimm-readonly.x86_64-5.2.0.args | 3 +-
...hotplug-nvdimm-readonly.x86_64-latest.args | 3 +-
.../memory-hotplug-nvdimm.x86_64-latest.args | 3 +-
...mory-hotplug-virtio-mem.x86_64-latest.args | 3 +-
...mory-hotplug-virtio-pmem.x86_64-5.2.0.args | 3 +-
...ory-hotplug-virtio-pmem.x86_64-latest.args | 3 +-
.../misc-no-reboot.x86_64-5.2.0.args | 3 +-
.../misc-no-reboot.x86_64-latest.args | 3 +-
.../mlock-off.x86_64-latest.args | 3 +-
.../mlock-on.x86_64-latest.args | 3 +-
.../name-escape.x86_64-latest.args | 3 +-
.../net-user-passt.x86_64-7.2.0.args | 3 +-
.../net-user-passt.x86_64-latest.args | 3 +-
.../net-user.x86_64-latest.args | 3 +-
.../net-vdpa-multiqueue.x86_64-latest.args | 3 +-
.../net-vdpa.x86_64-latest.args | 3 +-
.../net-vhostuser.x86_64-latest.args | 3 +-
.../net-virtio-rss.x86_64-latest.args | 3 +-
.../numatune-hmat.x86_64-latest.args | 2 +-
...emnode-restrictive-mode.x86_64-latest.args | 3 +-
.../numatune-memnode.x86_64-5.2.0.args | 3 +-
.../numatune-memnode.x86_64-latest.args | 3 +-
.../numatune-system-memory.x86_64-latest.args | 3 +-
.../pages-dimm-discard.x86_64-latest.args | 3 +-
...pages-discard-hugepages.x86_64-latest.args | 3 +-
.../pages-discard.x86_64-latest.args | 3 +-
.../panic-double.x86_64-latest.args | 2 +-
.../panic-no-address.x86_64-latest.args | 3 +-
.../qemuxml2argvdata/panic.x86_64-latest.args | 3 +-
...arallel-parport-chardev.x86_64-latest.args | 3 +-
.../parallel-tcp-chardev.x86_64-latest.args | 3 +-
.../parallel-unix-chardev.x86_64-latest.args | 3 +-
...pi-root-hotplug-disable.x86_64-latest.args | 3 +-
...cpi-root-hotplug-enable.x86_64-latest.args | 3 +-
.../pci-serial-dev-chardev.x86_64-latest.args | 3 +-
...e-expander-bus-aarch64.aarch64-latest.args | 3 +-
...cie-root-port-nohotplug.x86_64-latest.args | 3 +-
...ault-cpu-kvm-pseries-2.7.ppc64-latest.args | 2 +-
...ault-cpu-kvm-pseries-3.1.ppc64-latest.args | 2 +-
...ault-cpu-kvm-pseries-4.2.ppc64-latest.args | 2 +-
...ault-cpu-tcg-pseries-2.7.ppc64-latest.args | 2 +-
...ault-cpu-tcg-pseries-3.1.ppc64-latest.args | 2 +-
...ault-cpu-tcg-pseries-4.2.ppc64-latest.args | 2 +-
.../ppc64-pseries-graphics.ppc64-latest.args | 2 +-
.../ppc64-pseries-headless.ppc64-latest.args | 2 +-
.../ppc64-tpmproxy-single.ppc64-latest.args | 2 +-
.../ppc64-tpmproxy-with-tpm.ppc64-latest.args | 2 +-
.../pseries-basic.ppc64-latest.args | 2 +-
.../pseries-console-virtio.ppc64-latest.args | 2 +-
...eries-cpu-compat-power10.ppc64-latest.args | 2 +-
...series-cpu-compat-power9.ppc64-latest.args | 2 +-
.../pseries-cpu-compat.ppc64-latest.args | 2 +-
.../pseries-cpu-exact.ppc64-latest.args | 2 +-
.../pseries-cpu-le.ppc64-latest.args | 2 +-
.../pseries-features.ppc64-latest.args | 2 +-
.../pseries-hostdevs-1.ppc64-latest.args | 2 +-
.../pseries-hostdevs-2.ppc64-latest.args | 2 +-
.../pseries-hostdevs-3.ppc64-latest.args | 2 +-
.../pseries-many-buses-1.ppc64-latest.args | 2 +-
.../pseries-many-buses-2.ppc64-latest.args | 2 +-
.../pseries-many-devices.ppc64-latest.args | 2 +-
.../pseries-nvram.ppc64-latest.args | 2 +-
.../pseries-panic-missing.ppc64-latest.args | 2 +-
...pseries-panic-no-address.ppc64-latest.args | 2 +-
...ries-phb-default-missing.ppc64-latest.args | 2 +-
.../pseries-phb-numa-node.ppc64-latest.args | 2 +-
.../pseries-phb-simple.ppc64-latest.args | 2 +-
.../pseries-serial-native.ppc64-latest.args | 2 +-
.../pseries-serial-pci.ppc64-latest.args | 2 +-
.../pseries-serial-usb.ppc64-latest.args | 2 +-
.../pseries-usb-default.ppc64-latest.args | 2 +-
.../pseries-usb-kbd.ppc64-latest.args | 2 +-
.../pseries-usb-multi.ppc64-latest.args | 2 +-
...series-vio-user-assigned.ppc64-latest.args | 2 +-
.../pseries-vio.ppc64-latest.args | 2 +-
.../pv-spinlock-disabled.x86_64-latest.args | 2 +-
.../pv-spinlock-enabled.x86_64-latest.args | 2 +-
.../pvpanic-pci-aarch64.aarch64-latest.args | 2 +-
...pci-no-address-aarch64.aarch64-latest.args | 2 +-
.../pvpanic-pci-x86_64.x86_64-latest.args | 3 +-
...q35-default-devices-only.x86_64-4.2.0.args | 3 +-
...35-default-devices-only.x86_64-latest.args | 3 +-
.../q35-multifunction.x86_64-4.2.0.args | 3 +-
.../q35-multifunction.x86_64-latest.args | 3 +-
.../q35-pcie-autoadd.x86_64-4.2.0.args | 3 +-
.../q35-pcie-autoadd.x86_64-latest.args | 3 +-
.../q35-pcie.x86_64-4.2.0.args | 3 +-
.../q35-pcie.x86_64-latest.args | 3 +-
.../q35-virt-manager-basic.x86_64-4.2.0.args | 2 +-
.../q35-virt-manager-basic.x86_64-latest.args | 2 +-
.../qemu-ns.x86_64-latest.args | 3 +-
.../serial-debugcon.x86_64-latest.args | 3 +-
...rial-dev-chardev-iobase.x86_64-latest.args | 3 +-
.../serial-dev-chardev.x86_64-latest.args | 3 +-
.../serial-file-chardev.x86_64-latest.args | 3 +-
.../serial-file-log.x86_64-latest.args | 3 +-
.../serial-many-chardev.x86_64-latest.args | 3 +-
.../serial-pty-chardev.x86_64-latest.args | 3 +-
.../serial-spiceport.x86_64-latest.args | 3 +-
.../serial-tcp-chardev.x86_64-latest.args | 3 +-
...rial-tcp-telnet-chardev.x86_64-latest.args | 3 +-
...p-tlsx509-chardev-notls.x86_64-latest.args | 3 +-
...-tlsx509-chardev-verify.x86_64-latest.args | 3 +-
...ial-tcp-tlsx509-chardev.x86_64-latest.args | 3 +-
...-tlsx509-secret-chardev.x86_64-latest.args | 3 +-
.../serial-udp-chardev.x86_64-latest.args | 3 +-
.../serial-unix-chardev.x86_64-latest.args | 3 +-
.../serial-vc-chardev.x86_64-latest.args | 3 +-
.../sgx-epc.x86_64-7.0.0.args | 3 +-
...rtcard-passthrough-unix.x86_64-latest.args | 3 +-
.../tpm-emulator-spapr.ppc64-latest.args | 2 +-
.../tpm-emulator-tpm2-enc.x86_64-latest.args | 2 +-
...pm-emulator-tpm2-pstate.x86_64-latest.args | 2 +-
.../tpm-emulator-tpm2.x86_64-latest.args | 2 +-
.../tpm-emulator.x86_64-latest.args | 2 +-
.../tpm-external.x86_64-latest.args | 2 +-
.../tpm-passthrough-crb.x86_64-latest.args | 2 +-
.../tpm-passthrough.x86_64-latest.args | 2 +-
.../tseg-explicit-size.x86_64-latest.args | 3 +-
.../usb-redir-unix.x86_64-latest.args | 3 +-
.../user-aliases-usb.x86_64-latest.args | 2 +-
.../user-aliases.x86_64-latest.args | 2 +-
.../user-aliases2.x86_64-latest.args | 3 +-
...vhost-user-fs-fd-memory.x86_64-latest.args | 3 +-
...vhost-user-fs-hugepages.x86_64-latest.args | 2 +-
...host-user-gpu-secondary.x86_64-latest.args | 3 +-
.../vhost-user-vga.x86_64-latest.args | 3 +-
.../vhost-vsock-auto.x86_64-latest.args | 3 +-
.../vhost-vsock.x86_64-latest.args | 3 +-
...eo-bochs-display-device.x86_64-latest.args | 3 +-
...video-qxl-device-vram64.x86_64-latest.args | 3 +-
...o-qxl-sec-device-vram64.x86_64-latest.args | 3 +-
...eo-ramfb-display-device.x86_64-latest.args | 3 +-
...video-virtio-vga-gpu-gl.x86_64-latest.args | 3 +-
.../virtio-9p-createmode.x86_64-latest.args | 3 +-
.../virtio-9p-multidevs.x86_64-latest.args | 3 +-
.../virtio-iommu-aarch64.aarch64-latest.args | 2 +-
.../virtio-iommu-x86_64.x86_64-latest.args | 2 +-
.../virtio-lun.x86_64-latest.args | 3 +-
...virtio-non-transitional.x86_64-latest.args | 3 +-
...-options-controller-ats.x86_64-latest.args | 3 +-
...ptions-controller-iommu.x86_64-latest.args | 3 +-
...tions-controller-packed.x86_64-latest.args | 3 +-
...virtio-options-disk-ats.x86_64-latest.args | 3 +-
...rtio-options-disk-iommu.x86_64-latest.args | 3 +-
...tio-options-disk-packed.x86_64-latest.args | 3 +-
.../virtio-options-fs-ats.x86_64-latest.args | 3 +-
...virtio-options-fs-iommu.x86_64-latest.args | 3 +-
...irtio-options-fs-packed.x86_64-latest.args | 3 +-
...irtio-options-input-ats.x86_64-latest.args | 3 +-
...tio-options-input-iommu.x86_64-latest.args | 3 +-
...io-options-input-packed.x86_64-latest.args | 3 +-
...-options-memballoon-ats.x86_64-latest.args | 3 +-
...loon-freepage-reporting.x86_64-latest.args | 3 +-
...ptions-memballoon-iommu.x86_64-latest.args | 3 +-
...tions-memballoon-packed.x86_64-latest.args | 3 +-
.../virtio-options-net-ats.x86_64-latest.args | 3 +-
...irtio-options-net-iommu.x86_64-latest.args | 3 +-
...rtio-options-net-packed.x86_64-latest.args | 3 +-
.../virtio-options-rng-ats.x86_64-latest.args | 3 +-
...irtio-options-rng-iommu.x86_64-latest.args | 3 +-
...rtio-options-rng-packed.x86_64-latest.args | 3 +-
...irtio-options-video-ats.x86_64-latest.args | 3 +-
...tio-options-video-iommu.x86_64-latest.args | 3 +-
...io-options-video-packed.x86_64-latest.args | 3 +-
.../virtio-options.x86_64-latest.args | 3 +-
.../virtio-rng-builtin.x86_64-5.2.0.args | 3 +-
.../virtio-rng-builtin.x86_64-latest.args | 3 +-
.../virtio-rng-egd-unix.x86_64-5.2.0.args | 3 +-
.../virtio-rng-egd-unix.x86_64-latest.args | 3 +-
.../virtio-transitional.x86_64-latest.args | 3 +-
.../watchdog-device.x86_64-latest.args | 3 +-
.../watchdog-dump.x86_64-latest.args | 3 +-
.../watchdog-injectnmi.x86_64-latest.args | 3 +-
.../watchdog-q35-multiple.x86_64-latest.args | 3 +-
.../watchdog.x86_64-latest.args | 3 +-
.../x86-kvm-32-on-64.x86_64-latest.args | 3 +-
...-default-cpu-kvm-pc-4.2.x86_64-latest.args | 2 +-
...default-cpu-kvm-q35-4.2.x86_64-latest.args | 2 +-
...efault-cpu-tcg-features.x86_64-latest.args | 2 +-
...-default-cpu-tcg-pc-4.2.x86_64-latest.args | 2 +-
...default-cpu-tcg-q35-4.2.x86_64-latest.args | 2 +-
.../x86_64-pc-graphics.x86_64-latest.args | 2 +-
.../x86_64-pc-headless.x86_64-latest.args | 2 +-
.../x86_64-q35-graphics.x86_64-latest.args | 2 +-
.../x86_64-q35-headless.x86_64-latest.args | 2 +-
tests/testutilsqemu.c | 9 +-
485 files changed, 1044 insertions(+), 1145 deletions(-)
--
2.39.2
1 year, 10 months
[PATCH 0/4] conf, qemu: add loader type='none'
by Daniel Henrique Barboza
Hi,
Fedora Rawhide for RISC-V requires '-bios none' to properly boot
because its kernel is overwriting the default OpenSBI binary QEMU uses,
causing the following error:
$ sudo ./run tools/virsh start --console riscv-fedora
error: Failed to start domain 'riscv-fedora'
error: internal error: process exited while connecting to monitor: 2023-03-20T17:31:02.650862Z qemu-system-riscv64: Some ROM regions are overlapping
These ROM regions might have been loaded by direct user request or by default.
They could be BIOS/firmware images, a guest kernel, initrd or some other file loaded into guest memory.
Check whether you intended to load all this guest code, and whether it has been built to load to the correct addresses.
Other archs, such as PPC64 pseries, also requires "-bios none" if the
user wants QEMU to not load any default firmware.
At this moment libvirt doesn't support this option in the official API,
meaning we need to go to the <qemu:commandline> route to allow the
domain to boot, tainting it. And with a chance of weird interactions
with firmware autoselect.
These patches add official XML support for '-bios none' for QEMU domains
using a XML as follows:
<os>
<loader type='none'/>
(...)
</os>
The pre-conditions of this format are (1) no loader->path and (2) only
manual autoselect. Everything else is already covered by libvirt as
corner cases of existing firmware features.
Daniel Henrique Barboza (4):
conf: add loader type 'none'
qemu: handle bios 'none' case in qemuFirmwareFillDomain()
qemu, tests: add -bios none command line
docs: Document loader 'none' attribute
docs/formatdomain.rst | 7 +++++
src/conf/domain_conf.c | 5 +--
src/conf/domain_validate.c | 2 +-
src/conf/schemas/domaincommon.rng | 1 +
src/qemu/qemu_command.c | 6 ++++
src/qemu/qemu_firmware.c | 10 ++++++
.../firmware-bios-none.riscv64-latest.args | 31 +++++++++++++++++++
tests/qemuxml2argvdata/firmware-bios-none.xml | 18 +++++++++++
tests/qemuxml2argvtest.c | 2 ++
9 files changed, 79 insertions(+), 3 deletions(-)
create mode 100644 tests/qemuxml2argvdata/firmware-bios-none.riscv64-latest.args
create mode 100644 tests/qemuxml2argvdata/firmware-bios-none.xml
--
2.39.2
1 year, 10 months
[PATCH V3 0/3] migration: add qemu parallel migration options
by Jiang Jiacheng
Add compress method zlib and zstd for parallel migration and new
migration options to set qemu's parameter related with parallel
migration(multifd-compression, multifd-zlib-level and multifd-zstd-level).
These parameters has been supported by QEMU since 5.0.
v3 of:
https://listman.redhat.com/archives/libvir-list/2023-February/237604.html
diff to v2:
* merge the processing of new method into 'qemuMigrationParamsSetCompression'
* improve descriptions for the new options.
Jiang Jiacheng (3):
Add public API for parallel compression method
virsh: Add migrate options to set parallel compress level
qemu: support set parallel migration compression method
docs/manpages/virsh.rst | 29 ++++++++----
include/libvirt/libvirt-domain.h | 30 ++++++++++--
src/qemu/qemu_migration.h | 2 +
src/qemu/qemu_migration_params.c | 80 +++++++++++++++++++++++++++++++-
src/qemu/qemu_migration_params.h | 3 ++
tools/virsh-domain.c | 26 +++++++++++
6 files changed, 156 insertions(+), 14 deletions(-)
--
2.33.0
1 year, 10 months
[PATCH] meson: Work around configure_file(copy:true) deprecation
by Michal Privoznik
In our meson scripts, we use configure_file(copy:true) to copy
files from srcdir into builddir. However, as of meson-0.64.0,
this is deprecated [1] in favor of using:
fs = import('fs')
fs.copyfile(in, out)
Except, the submodule's new method wasn't introduced until
0.64.0. And since we can't bump the minimal meson version we
require, we have to work with both: new and old versions.
Now, the fun part: fs.copyfile() is not a drop in replacement as
it returns different type (a custom_target object). This is
incompatible with places where we store the configure_file()
retval in a variable to process it further.
While we could just replace 'copy:true' with a dummy
'configuration:...' (say 'configuration: configmake_conf') we
can't do that for binary files (like src/fonts/ or src/images/).
Therefore, places where we are not interested in the retval can
be switched to fs.copyfile() and places where we are interested
in the retval will just use a dummy 'configuration:'.
Except, src/network/meson.build. In here we not just copy the
file but also specify alternative install dir and that's not
something that fs.copyfile() can handle. Yet, using 'copy: true'
is viewed wrong [2].
1: https://mesonbuild.com/Release-notes-for-0-64-0.html#fscopyfile-to-replac...
2: https://github.com/mesonbuild/meson/pull/10042
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
docs/css/meson.build | 6 +++++-
docs/fonts/meson.build | 6 +++++-
docs/images/meson.build | 6 +++++-
docs/js/meson.build | 8 ++++++--
docs/logos/meson.build | 6 +++++-
docs/meson.build | 6 +++++-
meson.build | 3 +++
src/locking/meson.build | 8 ++++----
src/network/meson.build | 2 +-
9 files changed, 39 insertions(+), 12 deletions(-)
diff --git a/docs/css/meson.build b/docs/css/meson.build
index 384f6e789f..a2a2ccfb28 100644
--- a/docs/css/meson.build
+++ b/docs/css/meson.build
@@ -11,7 +11,11 @@ install_data(docs_css_files, install_dir: docs_html_dir / 'css')
foreach file : docs_css_files
# This hack enables us to view the web pages
# from within the uninstalled build tree
- configure_file(input: file, output: file, copy: true)
+ if meson.version().version_compare('>=0.64.0')
+ fs.copyfile(file)
+ else
+ configure_file(input: file, output: file, copy: true)
+ endif
install_web_files += '@0@:@1@'.format(meson.current_source_dir() / file, docs_html_dir / 'css')
endforeach
diff --git a/docs/fonts/meson.build b/docs/fonts/meson.build
index 53a060b972..8f2b1c3d28 100644
--- a/docs/fonts/meson.build
+++ b/docs/fonts/meson.build
@@ -17,7 +17,11 @@ install_data(fonts, install_dir: docs_html_dir / 'fonts')
foreach file : fonts
# This hack enables us to view the web pages
# from within the uninstalled build tree
- configure_file(input: file, output: file, copy: true)
+ if meson.version().version_compare('>=0.64.0')
+ fs.copyfile(file)
+ else
+ configure_file(input: file, output: file, copy: true)
+ endif
install_web_files += '@0@:@1@'.format(meson.current_source_dir() / file, docs_html_dir / 'fonts')
endforeach
diff --git a/docs/images/meson.build b/docs/images/meson.build
index 3c3cb5cce1..b9ab30fc91 100644
--- a/docs/images/meson.build
+++ b/docs/images/meson.build
@@ -17,7 +17,11 @@ install_data(docs_image_files, install_dir: docs_html_dir / 'images')
foreach file : docs_image_files
# This hack enables us to view the web pages
# from within the uninstalled build tree
- configure_file(input: file, output: file, copy: true)
+ if meson.version().version_compare('>=0.64.0')
+ fs.copyfile(file)
+ else
+ configure_file(input: file, output: file, copy: true)
+ endif
install_web_files += '@0@:@1@'.format(meson.current_source_dir() / file, docs_html_dir / 'images')
endforeach
diff --git a/docs/js/meson.build b/docs/js/meson.build
index cbf2dc2633..9f77b0d85c 100644
--- a/docs/js/meson.build
+++ b/docs/js/meson.build
@@ -7,7 +7,11 @@ install_data(docs_js_files, install_dir: docs_html_dir / 'js')
foreach file : docs_js_files
# This hack enables us to view the web pages
# from within the uninstalled build tree
- configure_file(input: file, output: file, copy: true)
+ if meson.version().version_compare('>=0.64.0')
+ fs.copyfile(file)
+ else
+ configure_file(input: file, output: file, copy: true)
+ endif
- install_web_files += '@0@:@1@'.format(meson.current_source_dir() / file, docs_html_dir / 'js')
+ install_web_files += '@0@:@1@'.format(meson.current_source_dir() / file, docs_html_dir / 'js')
endforeach
diff --git a/docs/logos/meson.build b/docs/logos/meson.build
index c65fcdd8ed..c3f4c9f522 100644
--- a/docs/logos/meson.build
+++ b/docs/logos/meson.build
@@ -25,7 +25,11 @@ install_data(docs_logo_files, install_dir: docs_html_dir / 'logos')
foreach file : docs_logo_files
# This hack enables us to view the web pages
# from within the uninstalled build tree
- configure_file(input: file, output: file, copy: true)
+ if meson.version().version_compare('>=0.64.0')
+ fs.copyfile(file)
+ else
+ configure_file(input: file, output: file, copy: true)
+ endif
install_web_files += '@0@:@1@'.format(meson.current_source_dir() / file, docs_html_dir / 'logos')
endforeach
diff --git a/docs/meson.build b/docs/meson.build
index 864abf0ba5..caa47a1476 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -345,7 +345,11 @@ subdir('manpages')
foreach file : docs_assets
# This hack enables us to view the web pages
# from within the uninstalled build tree
- configure_file(input: file, output: file, copy: true)
+ if meson.version().version_compare('>=0.64.0')
+ fs.copyfile(file)
+ else
+ configure_file(input: file, output: file, copy: true)
+ endif
install_web_files += '@0@:@1@'.format(meson.current_source_dir() / file, docs_html_dir)
endforeach
diff --git a/meson.build b/meson.build
index a0682e8d0b..885fa53e50 100644
--- a/meson.build
+++ b/meson.build
@@ -11,6 +11,9 @@ project(
],
)
+if meson.version().version_compare('>=0.64.0')
+ fs = import('fs')
+endif
# figure out if we are building from git
diff --git a/src/locking/meson.build b/src/locking/meson.build
index 72f7780438..57764b0da6 100644
--- a/src/locking/meson.build
+++ b/src/locking/meson.build
@@ -174,7 +174,7 @@ if conf.has('WITH_LIBVIRTD')
qemu_lockd_conf = configure_file(
input: 'lockd.conf',
output: 'qemu-lockd.conf',
- copy: true,
+ configuration: configmake_conf,
)
virt_conf_files += qemu_lockd_conf
virt_test_aug_files += {
@@ -191,7 +191,7 @@ if conf.has('WITH_LIBVIRTD')
libxl_lockd_conf = configure_file(
input: 'lockd.conf',
output: 'libxl-lockd.conf',
- copy: true,
+ configuration: configmake_conf,
)
virt_conf_files += libxl_lockd_conf
endif
@@ -203,7 +203,7 @@ if conf.has('WITH_LIBVIRTD')
qemu_sanlock_conf = configure_file(
input: 'sanlock.conf',
output: 'qemu-sanlock.conf',
- copy: true,
+ configuration: configmake_conf,
)
virt_conf_files += qemu_sanlock_conf
virt_test_aug_files += {
@@ -220,7 +220,7 @@ if conf.has('WITH_LIBVIRTD')
libxl_sanlock_conf = configure_file(
input: 'sanlock.conf',
output: 'libxl-sanlock.conf',
- copy: true,
+ configuration: configmake_conf,
)
virt_conf_files += libxl_sanlock_conf
endif
diff --git a/src/network/meson.build b/src/network/meson.build
index d266bb225a..0888d1beac 100644
--- a/src/network/meson.build
+++ b/src/network/meson.build
@@ -84,7 +84,7 @@ if conf.has('WITH_NETWORK')
configure_file(
input: 'default.xml.in',
output: '@BASENAME@',
- copy: true,
+ configuration: configmake_conf,
install: true,
install_dir: confdir / 'qemu' / 'networks',
)
--
2.39.2
1 year, 11 months
[PATCH 0/3] Setup iothread polling attributes in the XML
by Peter Krempa
Peter Krempa (3):
conf: Store the iothread 'poll' settings in the XML
qemu: Use configured iothread poll parameters on startup
docs: formatdomain: Properly indent example XML for setting
'metadata_cache'
docs/formatdomain.rst | 53 +++++++++++--------
src/conf/domain_conf.c | 41 +++++++++++++-
src/conf/domain_conf.h | 7 +++
src/conf/schemas/domaincommon.rng | 19 +++++++
src/qemu/qemu_command.c | 18 +++++++
src/qemu/qemu_driver.c | 30 ++++++-----
...othreads-ids-pool-sizes.x86_64-latest.args | 6 +--
.../iothreads-ids-pool-sizes.xml | 12 +++--
8 files changed, 142 insertions(+), 44 deletions(-)
--
2.39.2
1 year, 11 months
[libvirt PATCH] network: do not assume dnsmasq in networkUpdateState
by Ján Tomko
If we don't have dnsmasq, it's pointless to try to find
its pidfile.
Also, dnsmasqCapsGetBinaryPath would access a NULL pointer.
Fixes: 4b68c982e283471575bacbf87302495864da46fe
Foxes: https://gitlab.com/libvirt/libvirt/-/issues/456
Signed-off-by: Ján Tomko <jtomko(a)redhat.com>
---
src/network/bridge_driver.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 3fa56bfc09..ee4bbd4a93 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -492,7 +492,7 @@ networkUpdateState(virNetworkObj *obj,
virNetworkObjPortForEach(obj, networkUpdatePort, obj);
/* Try and read dnsmasq pids of active networks */
- if (virNetworkObjIsActive(obj) && def->ips && (def->nips > 0)) {
+ if (dnsmasq_caps && virNetworkObjIsActive(obj) && def->ips && (def->nips > 0)) {
pid_t dnsmasqPid;
if (networkSetMacMap(cfg, obj) < 0)
--
2.39.2
1 year, 11 months
Improve default machine type selection
by Jim Fehlig
If an explicit machine type is not specified in the VM config, the qemu driver
will select the first machine type in the list of machine types for the
specified accelerator. See virQEMUCapsGetPreferredMachine
https://gitlab.com/libvirt/libvirt/-/blob/master/src/qemu/qemu_capabiliti...
On my test machines, this works reasonably well for x86_64 where the first
machine type is pc-i440fx-7.1. But for aarch64, the first machine is
integratorcp, which is not very useful with maxCpus=1 and other limitations.
Would it be possible to select a "better" default machine type? E.g. 'pc' for
x86_64, 'virt' for aarch64, etc. I'm happy to work on this if folks deem it's a
reasonable improvement. It would benefit tools like the libvirt terraform
provider, which prefer to use something more generic like <type>hvm</type>.
Regards,
Jim
1 year, 11 months
[PATCH 00/21] qemu capability testing cleanups and improvements (part 5)
by Peter Krempa
This series applies on top of 'part 4' fetch everything from my repo:
git fetch https://gitlab.com/pipo.sk/libvirt.git aarch-send
In this part tests for the 'aarch64' platform are converted to use real
capabilities.
Peter Krempa (21):
virDomainPCIAddressSetExtensionAlloc: Remove return value
qemuxml2argvdata: Do not symlink output files for aarch64 gic tests
qemuxml2argvtest: Use real capabilities in tests for picking the
aarch64 GIC version
qemuxml2argvtest: Convert DO_TEST_GIC to use real latest capabilities
qemuxml2argvtest: Convert the rest of GIC tests to latest capabilities
qemuxml2argvtest: Add real-caps versions of 'aarch64-virt-virtio'
qemuxml2argvtest: Drop "aarch64-virt-2.6-virtio-pci-default" case
qemuxml2argv: Test default aarch64 cofig without PCIe support
qemuxml2argvtest: Modernize 'balloon-mmio-deflate'
qemuxml2argvtest: Don't symlink output files for 'mach-virt-' cases
qemuxml2argvtest: Modernize all 'mach-virt-' aarch64 test cases
qemuxml2argvtest: Update 'aarch64-virtio-pci-manual-addresses' case
qemuxml2*test: Drop fake-caps invocation of
'aarch64-virtio-pci-manual-addresses'
qemuxml2(argv|xml)test: Modernize testing of USB controllers on
aarch64
qemuxml2argvtest: Modernize the rest of 'aarch64' cases
qemuxml2xmlout: Do not symlink output files for 'aarch64-gic' cases
qemuxml2xmltest: Modernize 'aarch64-gic*' test cases
qemuxml2xmloutdata: Don't symlink output data for 'mach-virt*' cases
qemuxml2xmltest: Modernize 'mach-virt*' cases
qemuxml2xmltest: Convert rest of 'aarch64' cases to real capabilities
testutilsqemu: Drop fake capability testing infrastructure for
'aarch64'
src/conf/domain_addr.c | 13 +-
...h64-aavmf-virtio-mmio.aarch64-latest.args} | 20 +-
...rch64-cpu-passthrough.aarch64-latest.args} | 26 +--
.../aarch64-gic-default-both.args | 33 ++-
.../aarch64-gic-default-v2.args | 33 ++-
.../aarch64-gic-default-v3.args | 33 ++-
...=> aarch64-gic-default.aarch64-4.2.0.args} | 14 +-
...> aarch64-gic-default.aarch64-latest.args} | 17 +-
.../qemuxml2argvdata/aarch64-gic-default.args | 1 -
tests/qemuxml2argvdata/aarch64-gic-host.args | 6 +-
...=> aarch64-gic-invalid.aarch64-latest.err} | 0
.../aarch64-gic-none-both.args | 33 ++-
.../aarch64-gic-none-tcg.args | 6 +-
.../qemuxml2argvdata/aarch64-gic-none-v2.args | 33 ++-
.../qemuxml2argvdata/aarch64-gic-none-v3.args | 33 ++-
...gs => aarch64-gic-none.aarch64-4.2.0.args} | 8 +-
.../aarch64-gic-none.aarch64-latest.args | 32 +++
tests/qemuxml2argvdata/aarch64-gic-none.args | 1 -
...> aarch64-gic-not-virt.aarch64-latest.err} | 0
tests/qemuxml2argvdata/aarch64-gic-v2.args | 6 +-
tests/qemuxml2argvdata/aarch64-gic-v3.args | 6 +-
.../aarch64-pci-serial.aarch64-latest.args | 38 +++
...arch64-tpm-wrong-model.aarch64-latest.err} | 0
...arch64-traditional-pci.aarch64-latest.args | 37 +++
.../aarch64-traditional-pci.args | 34 ---
.../aarch64-usb-controller-qemu-xhci.args | 30 ---
.../aarch64-usb-controller-qemu-xhci.xml | 16 --
...arch64-usb-controller.aarch64-latest.args} | 11 +-
...ec-xhci.xml => aarch64-usb-controller.xml} | 6 +
...aarch64-video-default.aarch64-latest.args} | 13 +-
...4-video-virtio-gpu-pci.aarch64-latest.args | 37 +++
.../aarch64-video-virtio-gpu-pci.args | 35 ---
.../aarch64-virt-2.6-virtio-pci-default.xml | 46 ----
...ch64-virt-default-nic.aarch64-latest.args} | 10 +-
...ch64-virt-virtio-MMIO.aarch64.latest.args} | 20 +-
...=> aarch64-virt-virtio.aarch64-4.2.0.args} | 22 +-
.../aarch64-virt-virtio.aarch64-latest.args | 55 +++++
...o-pci-manual-addresses.aarch64-latest.args | 49 ++++
.../aarch64-virtio-pci-manual-addresses.xml | 4 +-
.../balloon-mmio-deflate.aarch64-latest.args | 37 +++
...h-virt-console-native.aarch64-latest.args} | 7 +-
.../mach-virt-console-native.args | 1 -
...ch-virt-console-virtio.aarch64-latest.args | 37 +++
...serial+console-native.aarch64-latest.args} | 12 +-
.../mach-virt-serial+console-native.args | 1 -
...ch-virt-serial-compat.aarch64-latest.args} | 12 +-
.../mach-virt-serial-compat.args | 1 -
...-serial-invalid-machine.x86_64-latest.err} | 0
...ch-virt-serial-native.aarch64-latest.args} | 12 +-
.../mach-virt-serial-pci.aarch64-latest.args | 37 +++
.../mach-virt-serial-usb.aarch64-latest.args | 37 +++
tests/qemuxml2argvtest.c | 217 +++++++-----------
...ch64-aavmf-virtio-mmio.aarch64-latest.xml} | 1 +
...arch64-gic-default-both.aarch64-latest.xml | 26 +++
.../aarch64-gic-default-both.xml | 1 -
.../aarch64-gic-default-v2.aarch64-latest.xml | 26 +++
.../aarch64-gic-default-v2.xml | 1 -
.../aarch64-gic-default-v3.aarch64-latest.xml | 26 +++
.../aarch64-gic-default-v3.xml | 1 -
.../aarch64-gic-default.aarch64-latest.xml | 26 +++
.../aarch64-gic-default.xml | 1 -
.../aarch64-gic-host.aarch64-latest.xml | 26 +++
tests/qemuxml2xmloutdata/aarch64-gic-host.xml | 1 -
.../aarch64-gic-none-both.aarch64-latest.xml | 26 +++
.../aarch64-gic-none-both.xml | 1 -
...> aarch64-gic-none-tcg.aarch64-latest.xml} | 1 +
.../aarch64-gic-none-v2.aarch64-latest.xml | 26 +++
.../aarch64-gic-none-v2.xml | 1 -
.../aarch64-gic-none-v3.aarch64-latest.xml | 26 +++
.../aarch64-gic-none-v3.xml | 1 -
.../aarch64-gic-none.aarch64-latest.xml | 26 +++
tests/qemuxml2xmloutdata/aarch64-gic-none.xml | 1 -
.../aarch64-gic-v2.aarch64-latest.xml | 26 +++
tests/qemuxml2xmloutdata/aarch64-gic-v2.xml | 1 -
.../aarch64-gic-v3.aarch64-latest.xml | 26 +++
tests/qemuxml2xmloutdata/aarch64-gic-v3.xml | 1 -
... => aarch64-pci-serial.aarch64-latest.xml} | 19 +-
...arch64-traditional-pci.aarch64-latest.xml} | 3 +
.../aarch64-usb-controller.aarch64-latest.xml | 36 +++
... aarch64-video-default.aarch64-latest.xml} | 22 +-
...4-video-virtio-gpu-pci.aarch64-latest.xml} | 4 +-
...o-pci-manual-addresses.aarch64-latest.xml} | 24 +-
...ch-virt-console-native.aarch64-latest.xml} | 4 +
.../mach-virt-console-native.xml | 1 -
...ach-virt-console-virtio.aarch64-latest.xml | 44 ++++
...-serial+console-native.aarch64-latest.xml} | 14 +-
.../mach-virt-serial+console-native.xml | 1 -
...mach-virt-serial-compat.aarch64-latest.xml | 36 +++
...mach-virt-serial-native.aarch64-latest.xml | 36 +++
.../mach-virt-serial-native.xml | 1 -
...> mach-virt-serial-pci.aarch64-latest.xml} | 19 +-
...> mach-virt-serial-usb.aarch64-latest.xml} | 3 +
tests/qemuxml2xmltest.c | 153 ++++++------
tests/testutilsqemu.c | 6 -
94 files changed, 1396 insertions(+), 557 deletions(-)
rename tests/qemuxml2argvdata/{aarch64-aavmf-virtio-mmio.args => aarch64-aavmf-virtio-mmio.aarch64-latest.args} (57%)
rename tests/qemuxml2argvdata/{aarch64-virtio-pci-manual-addresses.args => aarch64-cpu-passthrough.aarch64-latest.args} (52%)
mode change 120000 => 100644 tests/qemuxml2argvdata/aarch64-gic-default-both.args
mode change 120000 => 100644 tests/qemuxml2argvdata/aarch64-gic-default-v2.args
mode change 120000 => 100644 tests/qemuxml2argvdata/aarch64-gic-default-v3.args
rename tests/qemuxml2argvdata/{balloon-mmio-deflate.args => aarch64-gic-default.aarch64-4.2.0.args} (71%)
rename tests/qemuxml2argvdata/{aarch64-pci-serial.args => aarch64-gic-default.aarch64-latest.args} (55%)
delete mode 120000 tests/qemuxml2argvdata/aarch64-gic-default.args
rename tests/qemuxml2argvdata/{aarch64-gic-invalid.err => aarch64-gic-invalid.aarch64-latest.err} (100%)
mode change 120000 => 100644 tests/qemuxml2argvdata/aarch64-gic-none-both.args
mode change 120000 => 100644 tests/qemuxml2argvdata/aarch64-gic-none-v2.args
mode change 120000 => 100644 tests/qemuxml2argvdata/aarch64-gic-none-v3.args
rename tests/qemuxml2argvdata/{aarch64-cpu-passthrough.args => aarch64-gic-none.aarch64-4.2.0.args} (67%)
create mode 100644 tests/qemuxml2argvdata/aarch64-gic-none.aarch64-latest.args
delete mode 120000 tests/qemuxml2argvdata/aarch64-gic-none.args
rename tests/qemuxml2argvdata/{aarch64-gic-not-virt.err => aarch64-gic-not-virt.aarch64-latest.err} (100%)
create mode 100644 tests/qemuxml2argvdata/aarch64-pci-serial.aarch64-latest.args
rename tests/qemuxml2argvdata/{aarch64-tpm-wrong-model.err => aarch64-tpm-wrong-model.aarch64-latest.err} (100%)
create mode 100644 tests/qemuxml2argvdata/aarch64-traditional-pci.aarch64-latest.args
delete mode 100644 tests/qemuxml2argvdata/aarch64-traditional-pci.args
delete mode 100644 tests/qemuxml2argvdata/aarch64-usb-controller-qemu-xhci.args
delete mode 100644 tests/qemuxml2argvdata/aarch64-usb-controller-qemu-xhci.xml
rename tests/qemuxml2argvdata/{aarch64-usb-controller-nec-xhci.args => aarch64-usb-controller.aarch64-latest.args} (55%)
rename tests/qemuxml2argvdata/{aarch64-usb-controller-nec-xhci.xml => aarch64-usb-controller.xml} (61%)
rename tests/qemuxml2argvdata/{aarch64-video-default.args => aarch64-video-default.aarch64-latest.args} (54%)
create mode 100644 tests/qemuxml2argvdata/aarch64-video-virtio-gpu-pci.aarch64-latest.args
delete mode 100644 tests/qemuxml2argvdata/aarch64-video-virtio-gpu-pci.args
delete mode 100644 tests/qemuxml2argvdata/aarch64-virt-2.6-virtio-pci-default.xml
rename tests/qemuxml2argvdata/{aarch64-virt-default-nic.args => aarch64-virt-default-nic.aarch64-latest.args} (56%)
rename tests/qemuxml2argvdata/{aarch64-virt-virtio.args => aarch64-virt-virtio-MMIO.aarch64.latest.args} (58%)
rename tests/qemuxml2argvdata/{aarch64-virt-2.6-virtio-pci-default.args => aarch64-virt-virtio.aarch64-4.2.0.args} (63%)
create mode 100644 tests/qemuxml2argvdata/aarch64-virt-virtio.aarch64-latest.args
create mode 100644 tests/qemuxml2argvdata/aarch64-virtio-pci-manual-addresses.aarch64-latest.args
create mode 100644 tests/qemuxml2argvdata/balloon-mmio-deflate.aarch64-latest.args
rename tests/qemuxml2argvdata/{mach-virt-serial-native.args => mach-virt-console-native.aarch64-latest.args} (67%)
delete mode 120000 tests/qemuxml2argvdata/mach-virt-console-native.args
create mode 100644 tests/qemuxml2argvdata/mach-virt-console-virtio.aarch64-latest.args
rename tests/qemuxml2argvdata/{mach-virt-serial-pci.args => mach-virt-serial+console-native.aarch64-latest.args} (65%)
delete mode 120000 tests/qemuxml2argvdata/mach-virt-serial+console-native.args
rename tests/qemuxml2argvdata/{mach-virt-serial-usb.args => mach-virt-serial-compat.aarch64-latest.args} (64%)
delete mode 120000 tests/qemuxml2argvdata/mach-virt-serial-compat.args
rename tests/qemuxml2argvdata/{mach-virt-serial-invalid-machine.err => mach-virt-serial-invalid-machine.x86_64-latest.err} (100%)
rename tests/qemuxml2argvdata/{mach-virt-console-virtio.args => mach-virt-serial-native.aarch64-latest.args} (62%)
create mode 100644 tests/qemuxml2argvdata/mach-virt-serial-pci.aarch64-latest.args
create mode 100644 tests/qemuxml2argvdata/mach-virt-serial-usb.aarch64-latest.args
rename tests/qemuxml2xmloutdata/{aarch64-aavmf-virtio-mmio.xml => aarch64-aavmf-virtio-mmio.aarch64-latest.xml} (96%)
create mode 100644 tests/qemuxml2xmloutdata/aarch64-gic-default-both.aarch64-latest.xml
delete mode 120000 tests/qemuxml2xmloutdata/aarch64-gic-default-both.xml
create mode 100644 tests/qemuxml2xmloutdata/aarch64-gic-default-v2.aarch64-latest.xml
delete mode 120000 tests/qemuxml2xmloutdata/aarch64-gic-default-v2.xml
create mode 100644 tests/qemuxml2xmloutdata/aarch64-gic-default-v3.aarch64-latest.xml
delete mode 120000 tests/qemuxml2xmloutdata/aarch64-gic-default-v3.xml
create mode 100644 tests/qemuxml2xmloutdata/aarch64-gic-default.aarch64-latest.xml
delete mode 120000 tests/qemuxml2xmloutdata/aarch64-gic-default.xml
create mode 100644 tests/qemuxml2xmloutdata/aarch64-gic-host.aarch64-latest.xml
delete mode 120000 tests/qemuxml2xmloutdata/aarch64-gic-host.xml
create mode 100644 tests/qemuxml2xmloutdata/aarch64-gic-none-both.aarch64-latest.xml
delete mode 120000 tests/qemuxml2xmloutdata/aarch64-gic-none-both.xml
rename tests/qemuxml2xmloutdata/{aarch64-gic-none-tcg.xml => aarch64-gic-none-tcg.aarch64-latest.xml} (93%)
create mode 100644 tests/qemuxml2xmloutdata/aarch64-gic-none-v2.aarch64-latest.xml
delete mode 120000 tests/qemuxml2xmloutdata/aarch64-gic-none-v2.xml
create mode 100644 tests/qemuxml2xmloutdata/aarch64-gic-none-v3.aarch64-latest.xml
delete mode 120000 tests/qemuxml2xmloutdata/aarch64-gic-none-v3.xml
create mode 100644 tests/qemuxml2xmloutdata/aarch64-gic-none.aarch64-latest.xml
delete mode 120000 tests/qemuxml2xmloutdata/aarch64-gic-none.xml
create mode 100644 tests/qemuxml2xmloutdata/aarch64-gic-v2.aarch64-latest.xml
delete mode 120000 tests/qemuxml2xmloutdata/aarch64-gic-v2.xml
create mode 100644 tests/qemuxml2xmloutdata/aarch64-gic-v3.aarch64-latest.xml
delete mode 120000 tests/qemuxml2xmloutdata/aarch64-gic-v3.xml
rename tests/qemuxml2xmloutdata/{aarch64-pci-serial.xml => aarch64-pci-serial.aarch64-latest.xml} (70%)
rename tests/qemuxml2xmloutdata/{aarch64-traditional-pci.xml => aarch64-traditional-pci.aarch64-latest.xml} (93%)
create mode 100644 tests/qemuxml2xmloutdata/aarch64-usb-controller.aarch64-latest.xml
rename tests/qemuxml2xmloutdata/{aarch64-video-default.xml => aarch64-video-default.aarch64-latest.xml} (67%)
rename tests/qemuxml2xmloutdata/{aarch64-video-virtio-gpu-pci.xml => aarch64-video-virtio-gpu-pci.aarch64-latest.xml} (95%)
rename tests/qemuxml2xmloutdata/{aarch64-virtio-pci-manual-addresses.xml => aarch64-virtio-pci-manual-addresses.aarch64-latest.xml} (68%)
rename tests/qemuxml2xmloutdata/{mach-virt-serial-compat.xml => mach-virt-console-native.aarch64-latest.xml} (84%)
delete mode 120000 tests/qemuxml2xmloutdata/mach-virt-console-native.xml
create mode 100644 tests/qemuxml2xmloutdata/mach-virt-console-virtio.aarch64-latest.xml
rename tests/qemuxml2xmloutdata/{mach-virt-console-virtio.xml => mach-virt-serial+console-native.aarch64-latest.xml} (68%)
delete mode 120000 tests/qemuxml2xmloutdata/mach-virt-serial+console-native.xml
create mode 100644 tests/qemuxml2xmloutdata/mach-virt-serial-compat.aarch64-latest.xml
create mode 100644 tests/qemuxml2xmloutdata/mach-virt-serial-native.aarch64-latest.xml
delete mode 120000 tests/qemuxml2xmloutdata/mach-virt-serial-native.xml
rename tests/qemuxml2xmloutdata/{mach-virt-serial-pci.xml => mach-virt-serial-pci.aarch64-latest.xml} (71%)
rename tests/qemuxml2xmloutdata/{mach-virt-serial-usb.xml => mach-virt-serial-usb.aarch64-latest.xml} (93%)
--
2.39.2
1 year, 11 months