Release of libvirt-7.9.0

Jiri Denemark jdenemar at
Mon Nov 1 12:24:46 UTC 2021

The 7.9.0 release of both libvirt and libvirt-python is tagged and
signed tarballs and source RPMs are available at

Thanks everybody who helped with this release by sending patches,
reviewing, testing, or providing feedback. Your work is greatly

* New features

  * Introduce virtio-mem ``<memory/>`` model

    New virtio-mem model is introduced for ``<memory/>`` device which is a
    paravirtualized mechanism of adding/removing memory to/from a VM. Use
    ``virDomainUpdateDeviceFlags()`` API to adjust amount of memory or ``virsh
    update-memory-device`` for convenience.

  * qemu: support disabling hotplug of devices on the pci-root controller

    the <target hotplug='on|off'/> option is now supported for the
    pci-root controller on i440fx-based (x86 "pc") machinetypes. This
    can be used to disable hotplug/unplug of devices from this
    controller. The default behavior is unchanged (hotplug is

  * Support hotplug and hotunplug for virtiofs

    Filesystems backed by virtiofsd can now be hotplugged and hotunplugged.

  * virpcivpd: Add a PCI VPD parser

    A parser for the standard PCI/PCIe VPD ("I.3. VPD Definitions" in PCI 2.2+
    and an equivalent definition in "6.28.1 VPD Format" PCIe 4.0) was added
    along with relevant types to represent PCI VPD in memory. This
    functionality got added for Linux only at this point (kernels above
    v2.6.26 have support for exposing VPD via sysfs).

  * virpci: Add PCI VPD-related helper functions to virpci

    In order to utilize the PCI VPD parser, a couple of helper functions got
    introduced to check for the presence of a VPD file in the sysfs tree and
    to invoke the PCI VPD parser to get a list of resources representing PCI
    VPD contents in memory.

  * nodedev: Add PCI VPD capability support

    Support for serializing and deserializing PCI VPD data structures is added
    following the addition of the PCI VPD parser. A new PCI device capability
    called "vpd" is introduced holding string resources and keyword resources
    found in PCI VPD.

  * qemu: Support page_per_vq for driver element

    This optional virtio attribute ``page_per_vq`` controls the layout of the
    notification capabilities exposed to the guest. It is recommended for the
    vDPA devices.

  * qemu: Support librbd encryption

    Add an encryption engine ``librbd``. It will provides the image-level
    encryption of librbd. It requires QEMU >= 6.1.0 and librbd >= 16.1.0.

* Improvements

  * Use of JSON syntax with ``-device`` with upcoming QEMU-6.2

    Libvirt started using JSON directly with the ``-device`` commandline
    parameter as it's considered the preferred stable syntax for further QEMU
    releases. If any problems with the conversion are encountered please
    report them as soon as possible.

* Bug fixes

  * qemu: Fix problems on ``virsh domstats`` with qemu <5.2.0

    Libvirt v7.2.0 and later called query-dirty-rate, which was introduced in
    qemu-5.2.0, regardless of qemu version and failed in qemu-5.1.0. This
    release fixes the bug.

 * Don't enter endless loop when unable to accept new clients

   If libvirtd (or any other daemon) hit the ulimit for maximum number of open
   files but there are still client connections pending then libvirtd (or
   corresponding split daemon) would enter an endless loop from which it would
   never recover. This behaviour is now fixed.

 * qemu: Run secondary driver hooks in split daemon mode

   Because of a bug in implementation it may happen that hooks from secondary
   drivers were not called in all cases, for instance a network hook wasn't
   called upon removal of interface after domain shut off itself. With this
   release the bug is fixed.



More information about the Libvirt-announce mailing list