The 12.3.0 release of both libvirt and libvirt-python is tagged and
signed tarballs 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

  * bhyve: Add blkiotune support

    The bhyve driver now supports guest I/O throttling configuration::

     <blkiotune>
       <device>
         <path>*</path>
         <read_iops_sec>20000</read_iops_sec>
         <write_iops_sec>20000</write_iops_sec>
         <read_bytes_sec>10000</read_bytes_sec>
         <write_bytes_sec>10000</write_bytes_sec>
       </device>
     </blkiotune>

    It uses the ``rctl(4)`` framework to apply these limits.

  * bhyve: Implement ``virDomainInterfaceAddresses()`` and 
``virDomainGetHostname()``

    The bhyve driver now implements APIs allowing to fetch address of
    VM's interfaces (accessible via ``virsh domifaddr``) and the hostname
    of the VM (``virsh domhostname``).

  * hyperv: Implement ``virDomainGetGuestInfo()``

    The hyperv driver now implements API for fetching guest information
    (``virsh guestinfo``).

* Improvements

  * security: Don't error out on security labels of type='none'

    Previously, libvirt reported an error if a domain with seclabel of
    type='none' (meaning do not take this security model into account for this
    domain) was being started and the model wasn't available (for instance, in
    case of SELinux it was disabled at boot).

  * Allow for multiple PCI root buses, not just for a single one numbered '0'

    `virPCIDeviceReset()` and `virPCIDeviceIsBehindSwitchLackingACS()` no
    longer use a hardcoded check (e.g bus == 0 ) to determine if a device is
    attached to a "root bus". This allows for better support on more complex
    PCI topologies.

  * Add mechanism to prevent accidental shrink of device with ``virsh 
blockresize``

    A new flag ``VIR_DOMAIN_BLOCK_RESIZE_EXTEND`` was introduced which prevents
    accidental shrinking of the block device of the VM. The flag is exposed
    as ``virsh blockresize --extend``.

  * Expose ``MemAvailable`` field from kernel's meminfo as 
``VIR_NODE_MEMORY_STATS_AVAILABLE``

* Bug fixes

  * virnetdevmacvlan: Wait for udev to settle after creating macvtap

    When starting a domain with a macvtap device (or when hotplugging one),
    libvirt creates the device and opens its ``/dev`` representation in order
    to set it according to the ``<interface/>`` XML (e.g. MAC address, queues,
    etc.). But if the system is under heavy load, it might happen that after
    the device creation the udev daemon was triggered, but did not have enough
    time to set the ``/dev`` representation fully. This may result in various
    misconfiguration or even failed ``open()``. Therefore, libvirt waits after
    device creation for udev daemon to settle down.

  * apparmor: Don't drop macvtap devices from profile on blockjobs

Enjoy.

Jirka

Reply via email to