================ libvirt releases ================ This is the list of official releases for libvirt, along with an overview of the changes introduced by each of them. For a more fine-grained view, use the `git log`_. v10.1.0 (unreleased) ==================== * **Security** * **Removed features** * **New features** * qemu: Support clusters in CPU topology It is now possible to configure the guest CPU topology to use clusters. Additionally, if CPU clusters are present in the host topology, they will be reported as part of the capabilities XML. * network: Make virtual domains resolvable from the host When starting a virtual network with a new ``register='yes'`` attribute in the ```` element, libvirt will configure ``systemd-resolved`` to resolve names of the connected guests using the name server started for this network. * **Improvements** * **Bug fixes** * qemu_process: Skip over non-virtio non-TAP NIC models when refreshing rx-filter If ``trustGuestRxFilters`` is enabled for a vNIC that doesn't support it, libvirt may throw an error when such domain is being started, loaded from a saved state, migrated, etc. These errors are now silenced, but make sure to fix such configurations (after previous release it is even possible to change ``trustGuestRxFilters`` value on live domains via ``virDomainUpdateDeviceFlags()`` or ``virsh device-update``). v10.0.0 (2024-01-15) ==================== * **New features** * qemu: Enable ``postcopy-preempt`` migration capability Post-copy migrations are now started with ``postcopy-preempt`` capability enabled as long as it is supported by both sides of migration. This should enable faster migration of memory pages that the destination tries to read before they are migrated from the source. * qemu: Add support for mapping iothreads to virtqueues of ``virtio-blk`` devices QEMU added the possibility to map multiple ``iothreads`` to a single ``virtio-blk`` device and map them even to specific virtqueues. Libvirt adds a ```` subelement of the `` `` element that users can use to configure the mapping. * qemu: Allow automatic resize of block-device-backed disk to full size of the device The new flag ``VIR_DOMAIN_BLOCK_RESIZE_CAPACITY`` for ``virDomainBlockResize`` allows resizing a block-device backed ``raw`` disk of a VM without the need to specify the full size of the block device. * qemu: automatic selection/binding of VFIO variant drivers When a device is assigned to a guest using VFIO with ````, libvirt will now search the running kernel's modules.alias file for the most specific match to that device for a VFIO driver, and bind that driver to the device rather than vfio-pci. A specific driver can also be forced, using the ```` attribute. * qemu: add runtime configuration option for nbdkit Since the new nbdkit support requires a recent selinux policy that is not widely available yet, it is now possible to build libvirt with nbdkit support for remote disks but disabled at runtime. This behavior is controlled via the storage_use_nbdkit option of the qemu driver configuration file. The option will default to being disabled, but this may change in a future release and can be customized with the nbdkit_config_default build option. * qemu: add ID mapping support for virtiofsd New ```` element was added for virtiofsd-based ```` devices. It can be used to set up UID and GID mapping between host and guest, making running virtiofsd unprivileged much more useful. * **Improvements** * qemu: Improve migration XML use when persisting VM on destination When migrating a VM with a custom migration XML, use it as a base for persisting it on the destination as users could have changed non-ABI breaking facts which would prevent subsequent start if the old XML were used. * qemu: Simplify non-shared storage migration to ``raw`` block devices The phase of copying storage during migration without shared storage requires that both the source and destination image are identical in size. This may not be possible if the destination is backed by a block device and the source image size is not a multiple of the block device block size. Libvirt aleviates this by automatically adding a ```` to match the size of the source image rather than failing the migration. * test driver: Support for hotplug/hotunplug of PCI devices The test driver now supports basic hotplug and hotunplug of PCI devices. * qemu: allow virtiofsd to run unprivileged Nowadays virtiofsd no longer requires to run with root privileges, so the restriction to always run as root is now removed from libvirt too. * **Bug fixes** * qemu: Various migration bug fixes and debuggability improvement This release fixes multiple bugs in virsh and libvirt in handling of migration arguments and XMLs and modifies error reporting for better debugging. * conf: Restore setting default bus for input devices Because of a regression, starting from 9.3.0 libvirt did not autofill bus for input devices. With this release the regression was identified and fixed. * qemu: Relax check for memory device coldplug Because of a check that was too aggressive, a virtio-mem memory device could not be cold plugged. This is now fixed. * qemu: Be less aggressive when dropping channel source paths Another regression is resolved, (introduced in 9.7.0) when libvirt was too aggressive when dropping parsed paths for sources * qemuDomainChangeNet: Reflect trustGuestRxFilters change On device-update, when a user requested change of trustGuestRxFilters for a domain's libvirt did nothing. It did not throw an error nor did it reflect the change. Starting with this release, the change is reflected. v9.10.0 (2023-12-01) ==================== * **New features** * Introduce pipewire audio backend The QEMU hypervisor driver now allows setting ``pipewire`` backend for ``