Release of libvirt-9.4.0

Jiri Denemark jdenemar at redhat.com
Thu Jun 1 09:52:32 UTC 2023


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


More information about the Libvirt-announce mailing list