The 9.4.0 release of both libvirt and libvirt-python is tagged and
signed tarballs and source RPMs 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.
* New features
* qemu: Support compression for parallel migration
QEMU supports parallel migration to be compressed using either zstd or zlib.
* Improvements
* Adapt to musl-1.2.4
The latest version of musl stopped declaring some symbols that libvirt's
test suite used (for redirecting ``stat()`` family of functions), leaving
the tests broken. This is now fixed and the test suite works even with the
latest version of musl.
* conf: Introduce ``<address/>`` for virtio-mem and virtio-pmem
To ensure guest ABI stability, libvirt persists address for memory devices,
now including ``virtio-mem`` and ``virtio-pmem``. The address can be also
specified by user.
* Bug fixes
* qemu: Account for NVMe disks when calculating memlock limit on hotplug
When no ``<hard_limit/>`` is set, libvirt still tries to guess a sensible
limit for memlock for domains. But this limit was not calculated properly
on a hotplug of ``<disk type='nvme'/>``.
* numa: Deny other memory modes than ``restrictive``` if a memnode is ``restrictive``
Due to a missing check it was possible to define a domain with incorrect
``<numatune/>``. For instance it was possible to have a ``<memnode
mode="restrictive"/>`` and ``<memory/>`` of a different mode. This
is now
forbidden and if either all ``<memnode/>``-s and ``<memory/>`` have to
have
``restrictive`` mode, or none.
* qemu: Start emulator thread with more generous ``cpuset.mems``
To ensure memory is allocated only from configured NUMA nodes, libvirt sets
up cpuset CGgroup controller, even before QEMU is executed. But this may
prevent QEMU from setting affinity of threads that allocate memory. Since
these threads are spawned from the emulator thread, the initial set up must
be more generous and include union of all host NUMA nodes that are allowed
in the domain definition. Once QEMU has allocated all its memory, the
emulator thread is restricted further, as it otherwise would be.
Enjoy.
Jirka