using the <code>cachetune</code> element in <code>cputune</code>.
</description>
</change>
+ <change>
+ <summary>
+ Allow opening secondary drivers
+ </summary>
+ <description>
+ Up until now it was possible to connect to only hypervisor drivers
+ (e.g. qemu:///system, lxc:///, vbox:///system, and so on). The
+ internal drivers (like network driver, node device driver, etc.) were
+ hidden from users and users could use them only indirectly. Starting
+ with this release new connection URIs are accepted. For instance
+ network:///system, storage:///system and so on.
+ </description>
+ </change>
+ <change>
+ <summary>
+ virtlogd, virtlockd: Add support for admin protocol
+ </summary>
+ <description>
+ These two daemons now support admin protocol through which some admin
+ info can be gathered or some configuration tweaked on the fly.
+ </description>
+ </change>
</section>
<section title="Improvements">
<change>
libxl: add support for setting clock offset and adjustment
</summary>
</change>
+ <change>
+ <summary>
+ Make port allocator global
+ </summary>
+ <description>
+ Up until now each driver had their own port allocator module. This
+ meant that info on port usage was not shared. Starting with this
+ release, the port allocator module is made global and therefore
+ drivers allocate ports from global pool.
+ </description>
+ </change>
+ <change>
+ <summary>
+ Fixed some compiler warnings that appear with GCC 8
+ </summary>
+ </change>
</section>
<section title="Bug fixes">
+ <change>
+ <summary>
+ qemu: Check for unsafe migration more thoroughly
+ </summary>
+ <description>
+ If a domain disk is stored on local filesystem (e.g. ext4) but is
+ not being migrated it is very likely that domain is not able to
+ run on destination. Regardless of share/cache mode.
+ </description>
+ </change>
+ <change>
+ <summary>
+ qemu: Fix updating device with boot order
+ </summary>
+ <description>
+ Starting with 3.7.0 release updating any device with boot order would
+ fail with 'boot order X is already used by another device' while in
+ fact it was the very same device.
+ </description>
+ </change>
+ <change>
+ <summary>
+ virlog: determine the hostname on startup CVE-2018-6764
+ </summary>
+ <description>
+ At later point it might not be possible or even safe to use
+ getaddrinfo(). It can in turn result in a load of NSS module which
+ can even be loaded from unsage guest filesystem and thus escape the
+ confinment of its container.
+ </description>
+ </change>
+ <change>
+ <summary>
+ qemu: Rework vCPU statistics fetching
+ </summary>
+ <description>
+ Fetching vCPU statistics was very expensive because it lead to waking
+ up vCPU threads in QEMU and thus it degraded performance. The code
+ was reworked so that fetching statistics does not wake up halted
+ vCPUs.
+ </description>
+ </change>
+ <change>
+ <summary>
+ qemu: unlink memory backing file on domain shutdown
+ </summary>
+ <description>
+ Depending on the filesystem where domain memory is stored, some files
+ might have been left behind. This is not a problem on hugetlbfs, but
+ it is a problem on regular filesystems like ext4.
+ </description>
+ </change>
+ <change>
+ <summary>
+ qemu: Fix shutting down domains in parallel
+ </summary>
+ <description>
+ If multiple domains were being shut down in parallel, libvirtd might
+ have deadlocked.
+ </description>
+ </change>
+ <change>
+ <summary>
+ nodedev: Update PCI mdev capabilities dynamically
+ </summary>
+ <description>
+ PCI devices may have other nested capabilities, like SRIOV and mdev
+ which depend on the device being plugged into the native vendor
+ driver. However, in case such a device is directly assigned to a guest
+ using VFIO driver, the device will naturally lose these capabilities
+ and libvirt needs to reflect that.
+ </description>
+ </change>
</section>
</release>
<release version="v4.0.0" date="2018-01-19">