The 11.2.0 release of both libvirt and libvirt-python is tagged and signed tarballs are available at
https://download.libvirt.org/ https://download.libvirt.org/python/ Thanks everybody who helped with this release by sending patches, reviewing, testing, or providing feedback. Your work is greatly appreciated. * Removed features * Remove support for qemu-6.1 and older Libvirt now requires *qemu-6.2* or newer based on our platform support policy. * New features * qemu: Add new 'image_format' parameter to virDomainSaveParams ``virDomainSaveParams`` now supports an ``image_format`` parameter for specifying the save image format on a per-domain basis. The parameter accepts the same values as the driver-wide ``save_image_format`` setting in ``qemu.conf``. An image format specified via ``virDomainSaveParams`` takes precedence over the driver-wide setting. * qemu: Added guest load averages to the output of virDomainGetGuestInfo This feature will be available with qemu guest agent 10.0 onwards. * qemu: Add support for multiple iothreads for ``virtio-scsi`` controller It's now possible to map multiple iothreads to the ``virtio-scsi`` controller or even map them to specific virtqueues similarly to the ``virtio-blk`` device allowing for better performance in certain scenarios. * qemu: integrate support for VM shutdown on host shutdown It is now possible to instruct the QEMU driver to automatically perform managed save, graceful shutdown, or hard poweroff on running VMs, when a host shutdown is requested. This feature is intended to eventually replace usage of the libvirt-guests script. The new approach improves on the libvirt-guests script, by proactively monitoring logind for a signal that a host shutdown has been requested. It will initiate the chosen action on running guests immediately, allowing shutdown inhibitors to be released sooner. The new solution is also able to iteratively try multiple actions until one of them succeeds in shutting down the VM. Since it must be mutually exclusive with the libvirt-guests script, this feature currently requires a manual opt-in through editing of the /etc/libvirt/qemu.conf configuration file. The libvirt-guests script must be disabled before doing this. * qemu: Add 'sparse' as a new save image format QEMU's ``file`` migration has been supplemented with the new stream format ``mapped-ram``, where RAM pages are mapped directly to offsets in the migration file. ``mapped-ram`` is now supported by augmenting the existing save image formats with the ``sparse`` format. * qemu: Add support for parallel save/restore The ``sparse`` image format can support reading and writing by multiple channels. ``virDomainSaveParams`` and ``virDomainRestoreParams`` now support specifying the number of IO channels used for parallel save and restore. Using multiple channels can reduce the time required to save and restore domains. * virsh: Introduce new hypervisor-cpu-models command Added a new virsh command ``hypervisor-cpu-models``. The command pulls from the existing domcapabilities XML and uses xpath to parse CPU model strings. By default, only models reported as usable by the hypervisor on the host system are printed. A user may specify ``--all`` to also print models which are not supported on the host. * qemu: Introduce os/shim element For secure boot environments where ``<loader/>`` is signed, it may be unfeasible to keep the binary up to date (esp. when revoking certificates contained within). To address that, new ``<shim/>`` element is introduced which allows hypervisor to side load another UEFI binary, which can then contain new certification authorities and/or list of revocations. * ch: Enable SEV SNP support Cloud Hypervisor guests can be now started with SEV SNP enabled. * qemu: Support for Block Disk Along with Throttle Filters Introduce support for multiple throttle groups per block disk in QEMU, enhancing I/O control and performance optimization. This update builds on the existing throttling functionality by allowing more granular control with the ability to assign different throttle groups to multiple block devices, improving shared throttling across devices. * Improvements * qemu: Improved guest agent corner case error reporting The APIs using the guest agent now report two specific error codes aimed at helping management applications/users to differentiate between timeout while libvirt was synchronizing with the guest agent and timeout after a command was already sent. The new error codes are ``VIR_ERR_AGENT_COMMAND_TIMEOUT`` and ``VIR_ERR_AGENT_COMMAND_FAILED``. * qemu: Use common check for shared memory use for ``vhost-user`` network devices Historically libvirt printed only a warning if the ``vhost-user`` network was misconfigured. Since we enforce proper configuration for other device types using ``vhost-user`` it is now enforced also for network devices and prints an actual error on misconfiguration. * Introduce constants for discoverability of entries in bulk stats APIs Libvirt introduced constants exposed by our API description XML which allows discoverability of new entries in typed parameter names returned by ``virConnectGetAllDomainStats``, ``virDomainListGetStats``, and ``virDomainGetGuestInfo``. * qemu: Reflect MAC address change in live domain XML When a guest changes MAC address on one of its vNICs the new MAC address is now visible in the live XML under ``currentAddress`` attribute of ``<mac/>`` element. At the same time, ``VIR_DOMAIN_EVENT_ID_NIC_MAC_CHANGE`` event is emitted so that management applications can update their internal state. * Bug fixes * qemu: attach virtio-mem with CCW address Attaching a virtio-mem device on s390 without an address type now gets a default type CCW address assigned. A specified CCW address is now used for the virtio-mem device instead of getting overwritten by a PCI address. * ch: Various memory leak fixes There were some memory leaks identified in the Cloud Hypervisor driver. They are fixed now. Enjoy. Jirka