The 8.9.0 release of both libvirt and libvirt-python is tagged and
signed tarballs and source RPMs are available at
https://libvirt.org/sources/
https://libvirt.org/sources/python/
Thanks everybody who helped with this release by sending patches,
reviewing, testing, or providing feedback. Your work is greatly
appreciated.
* New features
* Add ``virt-qemu-qmp-proxy`` for emulating a QMP socket for libvirt managed VMs
``virt-qemu-qmp-proxy`` tool provides a way to expose an emulated QMP server
socket for a VM managed by libvirt. This allows existing QMP-only clients
to work with libvirt managed VMs.
Note: libvirt is not interpreting the communication between the tool
using the proxy and qemu itself, so any state-changing commands may
desynchronize libvirt. Use at your own risk.
* qemu: Core Scheduling support
To avoid side channel attacks, the Linux kernel allows creating groups of
processes that trust each other and thus can be scheduled to run on
hyperthreads of a CPU core at the same time. This is now implemented for
QEMU domains too (see ``sched_core`` knob in qemu.conf), although not
enabled by default, just yet.
* Improvements
* qemu: Add hypervisor-specific statistics to ``virConnectGetAllDomainStats``
The new stats group ``VIR_DOMAIN_STATS_VM`` of
``virConnectGetAllDomainStats``, also exposed as ``virsh domstats --vm``,
returns hypervisor-specific stats fields for given VM.
* Add ``vendor`` attribute for CPU models in domain capabilities
Users can now see the vendor of each CPU model in domain capabilities and
use it, e.g., for filtering usable CPU models based on host CPU vendor.
* virsh: Add ``--model`` option for ``hypervisor-cpu-baseline``
This is a shortcut for calling ``hypervisor-cpu-baseline`` with a single
CPU model and no additional features. It can be used for determining which
features block a particular CPU model from being usable.
* Improved documentation of CPU ``usable`` attribute in domain capabilities
* Report ``channel`` and ``redirdev`` devices in domain capabilities
The channel and redirect devices supported by the hypervisor are now
reported in domain capabilities.
* meson: Bump minimal required meson version
Newer meson versions deprecate some functions used. These were replaced
with their newer counterparts and the minimal required mesion version was
bumped to 0.56.0.
* qemu: Add flags to keep or remove TPM state for ``virDomainUndefineFlags``
``VIR_DOMAIN_UNDEFINE_TPM`` and ``VIR_DOMAIN_UNDEFINE_KEEP_TPM`` specify
accordingly to delete or keep a TPM's persistent state directory structure
and files when undefining a domain. In virsh the flags are exposed as
``--tpm`` and ``--keep-tpm`` for the sub-command ``undefine``.
* Bug fixes
* qemu: Disable all blocker features in CPU baseline
Three years ago QEMU renamed some CPU features (mostly those containing
an underscore). When such renamed feature was reported by QEMU as blocking
usability of a CPU model, we would fail to explicitly disable it when
creating a baseline CPU definition using this model. This bug did not have
any functional impact when the default ``check='partial'`` attribute was
used for guest CPU definition in domain XML, but it could have caused
failures to start a domain with ``check='full'`` in some cases.
* qemu: Do not crash after restart with active migration
In 8.8.0 release libvirt daemon would crash after it was restarted during
an active outgoing migration.
* qemu: Refresh state after restore from a save image
When a domain is restored from a saved image, libvirt now queries QEMU for
those parts of runtime information that were not part of the save image.
For instance: MAC address of a macvtap NICs, tray state of CD-ROMs,
allocated size of virtio-mem, and others.
Enjoy.
Jirka