Release of libvirt-7.0.0

Jiri Denemark jdenemar at
Fri Jan 15 08:58:35 UTC 2021

The 7.0.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 any other feedback. Your work is
greatly appreciated.

* Project governance

  * Formal handover of release tarball signing

    Starting from libvirt-6.6 the release tarballs are signed by Jiří Denemark.
    Releases starting with 7.0 contain a note from the previous maintainer
    Daniel Veillard offically handing over the signing of packages so that the
    transition can be verified.

* New features

  * nodedev: Add node device driver support for AP devices

    Add support for detecting and listing Adjunct Processor(AP) cards, AP
    queues and AP matrix devices (which are capable of MDEV) of a KVM host
    system in libvirt node device driver with correct object relationships.

  * qemu: Allow control of ``qcow2`` metadata cache

    In specific usecases such as when massive storage images are used it's
    possible to achieve better performance by increasing the metadata cache
    size. The new knob allows advanced users setting the size according to
    qemu's documentation to suit their image.

  * conf: Add support for keeping TPM emulator state

    Currently, swtpm TPM state file is removed when a transient domain is
    powered off or undefined. Add per-TPM emulator option ``persistent_state``
    for keeping TPM state.

* Improvements

  * qemu: Discourage users from polling ``virDomainGetBlockJobInfo`` for block
    job completion

    Document that waiting for events is a more robust solution.

  * secret: Relax XML schema for the ``usage`` name of a ``secret``

    Various bits of documentation of how to use libvirt with RBD volumes used
    an usage name which would not pass the XML validation. Relax the requirement
    to make such XMLs valid.

  * virnetdevopenvswitch: Various improvements

    The code that handles ``<interface type='vhostuser'/>`` was given various
    improvements. So far, libvirt assumed vhostuser interfaces are handled
    exclusively by OpenVSwitch and refused to start a guest if it was not so.
    Now a guest can be started successfully even if the interface is created by
    some other tool (e.g. ``dpdk-testpmd``). Also, the code that detects the
    interface name was adapted to new versions of OpenVSwitch and thus can
    detect name more reliably.

  * qemu: Report guest disks informations in ``virDomainGetGuestInfo``

    Libvirt is now able to report disks and filesystems from the guest's
    perspective (using guest agent). And with sufficiently new guest agent
    (5.3.0 or newer) the API also handles disks on CCW bus.

* Bug fixes

  * qemu: Fix logic bug in inactive snapshot deletion

    This release fixes a bug introduced in libvirt-6.9 where libvirt's
    snapshot metadata would not be deleted on successful snapshot deletion.

  * qemu: Fix VMs with ``<iotune>`` on an empty cdrom

    Specifying ``<iotune>`` for an empty cdrom would prevent the VM from
    starting as qemu doesn't accept the tuning for an empty drive. We now
    postpone setting the parameters until a new media is inserted.

  * Avoid taking extra host memory when launching pSeries guests

    Under certain conditions, pSeries guests were being launched with more
    RAM than it was specified in the domain XML by the user. New pSeries
    domains created with libvirt 7.0.0 will always launch with the right
    amount of initial memory. Existing guests that migrate from an older
    libvirt version to 7.0.0 will not be affected by this change.

  * qemu: Don't cache NUMA caps

    ``virsh capabilities`` contains ``<topology/>`` section which reports NUMA
    topology among with amount of free hugepages per each NUMA node. However,
    these amounts were not updated between calls.

  * networkGetDHCPLeases: Handle leases with infinite expiry time

    Since libvirt-6.3.0 it is possible to configure expiry time for DHCP
    leases. If the expiry time was infinite then ``virsh net-dhcp-leases``
    and NSS plugins refused to work.

  * qemu: Don't prealloc mem for real NVDIMMs

    If a real life NVDIMM is assigned to a guest via ``<memory model='nvdimm'/>``
    then QEMU is no longer instructed to preallocate memory
    for it. This prevents unnecessary wear on the NVDIMM.

  * network: Introduce mutex for bridge name generation

    When new libvirt network is defined or created and the input XML does not
    contain any bridge name, libvirt generates one. However, it might have
    happened that the same name would be generated for different networks if
    two or more networks were defined/created at once.



More information about the Libvirt-announce mailing list