Recent Releases
10.10.005 Dec 2024 13:45
major feature:
New features.
Qemu: add multi boot device support on s390x.
For classical mainframe guests (i.e. LPAR or z/VM installations), you.
Always have to explicitly specify the disk where you want to boot from (or
"IPL" from, in s390x-speak -- IPL means "Initial Program Load").
In the past QEMU only used the first device in the boot order to IPL from.
With the new multi boot device support on s390x that is available with QEMU.
Version 9.2 and newer, this limitation is lifted. If the IPL fails for the
First device with the lowest boot index, the device with the second lowest
Boot index will be tried and so on until IPL is successful or there are no
Remaining boot devices to try.
Limitation: The s390x BIOS will try to IPL up to 8 total devices, any.
Number of which may be disks or network devices.
Qemu: Add support for versioned CPU models.
Updates to QEMU CPU models with -vN sufcan now be used in libvirt just.
Like any other CPU model.
Qemu: Support for the 'data-file' QCOW2 image feature.
The QEMU hypervisor driver now supports QCOW2 images with 'data-file'.
Feature present (both when probing form the image itself and when specified
Explicitly via `` element). This can be useful when it's
Required to keep data "raw" on disk, but the use case requires features
of the QCOW2 format such as incremental backups.
Swtpm: Add support for profiles.
Upcoming swtpm release will have TPM profile support that allows to.
Restrict a TPM's provided set of crypto algorithms and commands. Users can
Now select profile by using `` in their TPM XML definition.
Improvements.
Qemu: Support UEFI NVRAM images on block storage.
Libvirt now allows users to use block storage as backend for UEFI NVRAM.
Images and allows them to be in format different than the template. When
Qcow2 is used as the format, the images are now also auto-populated from the
Template.
Qemu: Automatically add IOMMU when needed.
When domain of 'qemu' or 'kvm' type has more than 255 vCPUs IOMMU with EIM.
M
10.9.028 Nov 2024 15:25
major feature:
New features.
Qemu: zero block detection for non-shared-storage migration.
Users can now request that all-zero blocks are not transferred when migrating.
Non-shared disk data without actually enabling zero detection on the disk
Itself. This allows sparsifying images during migration where the source
Has no access to the allocation state of blocks at the cost of CPU overhead.
This feature is available via the `--migrate-disks-detect-zeroes` option.
For `virsh migrate` or `VIR_MIGRATE_PARAM_MIGRATE_DISKS_DETECT_ZEROES`
Migration parameter. See the documentation for caveats.
Improvements.
Qemu: internal snapshot improvements.
The qemu internal snapshot handling code was updated to use modern commands.
Which avoid the problems the old ones had, preventing use of internal
Snapshots on VMs with UEFI NVRAM. Internal snapshots of VMs using UEFI are
Now possible provided that the NVRAM is in `qcow2` format.
The new code also allows better control when deleting snapshots. To prevent.
Possible regressions no strict checking is done, but in case inconsistent
State is encountered a log message is added::
Warning : qemuSnapshotActiveInternalDeleteGetDevices:3841 : inconsistent internal snapshot state (deletion): VM='snap' snapshot='1727959843' missing='vda ' unexpected='' extra=''.
Users are encouraged to report any occurence of the above message along.
With steps they took to the upstream tracker.
Qemu: improve documentation of image format settings.
The documentation of the various `*_image_format` settings in `qemu.conf`.
Imply they can only be used to control compression of the image. The
Documentation has been improved to clarify the settings describe the
Representation of guest memory blocks on disk, which includes compression
Among other possible layouts.
Report CPU model blockers in domain capabilities.
When a CPU model is reported as usable='no' an additional.
`` element is added for that CPU model listing.
Features required by the CPU model, but not s
10.8.025 Nov 2024 22:45
major bugfix:
Improvements.
Network: make networks with `` more useful.
It is now permissable to have a `` network that.
Has no IP address assigned to the host's port of the bridge. This
is the only way to create a libvirt network where guests are.
Unreachable from the host (and vice versa) and also 0 firewall
Rules are added on the host.
It is now also possible for a `` network to.
Use the `zone` attribute of `` to set the firewalld zone of
The bridge interface (normally it would not be set, as is done
With other forward modes).
Storage: Lessen dependancy on the `showmount` program.
Libvirt now automatically detects presence of `showmount` during runtime
as we do with other helper programs and also the.
`daemon-driver-storage-core` RPM package now doesn't strongly depend on it
if the users wish for a more minimal deployment.
Switch from YAJL to json-c for JSON parsing and formatting.
The parser and formatter in the libvirt library, as well
as the parsers in the nss plugin were rewritten to use json-c.
Instead of YAJL, which is effectively dead upstream.
Relax restrictions for memorytune settings.
It should now be possible to use resctrl on AMD CPUs as well as Intel CPUs.
When the resctrl filesystem is mounted with `mba_MBps` option.
.
Virsh: script-friedly output of `virsh list --uuid`.
The script-friendly output of just 1 UUID per line was mistakenly replaced
by the full human-targetted table view full of redundant information.
And very hard to parse. Users who wish to see the UUIDs in the tabular
Output need to use `virsh list --table --uuid` as old behaviour was
Reverted.
Note that this also broke the `libvirt-guests` script. The was.
Introduced in `v10.7.0 (2024-09-02)`_.
Network/qemu: some cases where `device-update` of a network.
Interface was failing:
If the interface was connected to a libvirt network that was.
Providing a pool of VFs to be used with macvtap passthrough
Mode, then *any update to the interface would fail, even
Changing the link state.
10.7.023 Nov 2024 00:45
major feature:
Security.
CVE-2024-8235: Crash of `virtinterfaced` via `virConnectListInterfaces()`.
A refactor of the code fetching the list of interfaces for multiple APIs
introduced corner case on platforms where allocating 0 bytes of memory
results in a NULL pointer.
This corner case would lead to a NULL-pointer dereference and subsequent
crash of `virtinterfaced` if `virConnectListInterfaces()` is called
requesting 0 networks to be filled.
The was introduced in libvirt-10.4.0.
New features.
qemu: Introduce the ability to disable the built-in PS/2 controller.
It is now possible to control the state of the `ps2` feature in the
domain XML for descendants of the generic PC machine type (`i440fx`.
`q35`, `xenfv` and `isapc`).
Improvements.
ch: support restore with network devices.
Cloud-Hypervisor starting from V40.0 supports restoring file descriptor
backed network devices. So, create new net fds and pass them via
SCM_RIGHTS to CH during restore operation.
ch: support basic networking modes
Cloud-Hypervisor driver now supports Ethernet, Network (NAT) and Bridge
networking modes.
10.6.012 Sep 2024 23:25
major feature:
Removed features.
Qemu: Require QEMU-5.2.0 or newer.
The minimal required version of QEMU was bumped to 5.2.0.
New features.
Qemu: Add support for the 'pauth' Arm CPU feature.
Introduce pstore device.
The aim of pstore device is to provide a bit of NVRAM storage for guest.
Kernel to record oops/panic logs just before it crashes. Typical usage
Includes usage in combination with a watchdog so that the logs can be
Inspected after the watchdog rebooted the machine.
Improvements.
Qemu: Set 'passt' net backend if 'default' is unsupported.
If QEMU is compiled without SLIRP support, and if domain XML allows it.
Starting from this release libvirt will use passt as the default backend
Instead. Also, supported backends are now reported in the domain
Capabilities XML.
Qemu: add a monitor to /proc/ pid when killing times out.
In cases when a QEMU process takes longer to be killed, libvirt might have.
Skipped cleaning up after it. But now a /proc/ pid watch is installed so
This does not happen ever again.
.
Virt-aa-helper: Allow RO access to /usr/share/edk2-ovmf.
When binary version of edk2 is distributed, the files reside under.
/usr/share/edk2-ovmf. Allow virt-aa-helper to generate paths under that.
Directory.
Virt-host-validate: Allow longer list of CPU flags.
During its run, virt-host-validate parses /proc/cpuinfo to learn about CPU.
Flags. But due to a it parsed only the first 1024 bytes worth of CPU
Flags leading to unexpected results. The file is now parsed properly.
Capabilities: Be more forgiving when decoding OEM strings.
On some systems, OEM strings are scattered in multiple sections. This.
Confused libvirt when generating capabilities XML. Not anymore.
10.5.002 Jul 2024 15:45
major bugfix:
New features.
Introduce SEV-SNP support.
SEV-SNP is introduced as another type of ``. Its support
is reported in both domain capabilities and `virt-host-validate`.
Improvements.
Tools: virt-pki-validate has been rewritten in C.
The `virt-pki-validate` shell script has been rewritten as a C program.
Providing an output format that matches `virt-host-validate`, removing
The dependency on `certtool` and providing more comprehensive checks
of the certificate properties.
Qemu: implement iommu coldplug/unplug.
The `` device can be now cold plugged and/or cold unplugged.
Pass shutoff reason to release hook.
Sometimes in release hook it is useful to know if the VM shutdown was.
Graceful or not. This is especially useful to do cleanup based on the VM
Shutdown failure reason in release hook. Starting with this release the
Last argument 'extra' is used to pass VM shutoff reason in the call to
Release hook.
Nodedev: improve DASD detection.
In newer DASD driver versions the ID_TYPE tag is supported. This tag is.
Missing after a system reboot but when the ccw device is set offline and
Online the tag is included. To this version independently we need to
Check if a device detected as type disk is actually a DASD to maintain the
Node object consistency and not end up with multiple node objects for
DASDs.
.
Remote_daemon_dispatch: Unref sasl session when closing client connection.
A memory leak was identified when a client started SASL but then suddenly.
Connection. This is now.
Qemu: migration with disabled vmx- CPU features.
Migrating a domain with some vmx- CPU features marked as disabled could.
Have failed as the destination would incorrectly expect those features to
be enabled after starting QEMU.
Qemu: `libvirtd`/`virtqemud` crash when VM shuts down during migration.
The libvirt daemon could crash when a VM was shut down while being migrated
to another host.
10.4.004 Jun 2024 12:45
major feature:
New features.
Qemu: Support for ras feature for virt machine type.
It is now possible to set on/off `ras` feature in the domain XML for virt.
(Arm) machine type as ``.
SSH proxy for VM.
Libvirt now installs a binary helper that allows connecting to QEMU domains.
Via SSH using the following scheme: `ssh user@qemu/virtualMachine`.
Qemu: Support for `virtio` sound model.
Sound devices can now be configured to use the virtio model with.
``. This model is available from QEMU 8.2.0.
Onwards.
Network: use nftables to setup virtual network firewall rules.
The network driver can now use nftables rules for the virtual.
Network firewalls, rather than iptables. With the standard build
Options, nftables is preferred over iptables (with fallback to
Iptables if nftables isn't installed), but this can be modified at
Build time, or at runtime via the firewall_backend setting in
Network.conf. (NB: the nwfilter driver still uses
Ebtables/iptables).
Improvements.
Qemu: add zstd to supported compression formats.
Extend the list of supported formats of QEMU save image by adding zstd.
Compression.
Qemu: Implement support for hotplugging evdev input devices.
As of this release, hotplug and hotunplug of evdev `` devices is.
Supported.
.
Virsh/virt-admin: `--help` option for all commands.
A introduced in `v10.3.0 (2024-05-02)`_ caused that the attempt to print.
Help for any command by using the `--help` option in `virsh` and
`virt-admin` would print::
virsh list --help.
Error: command 'list' doesn't support option --help
Instead of the help output. A workaround for the affected version is to use.
The help command::
virsh help list.
Qemu: `virsh save` and migration when storage in question is root_squashed NFS.
Attempting to save a VM to a root_squash NFS mount or migrating with disks.
Hosted on such mount could, in some scenarios, result in error stating::
'Unknown error 255'.
The was introduced in `v10.1.0 (2024-03-01)`_.
Qemu: Don't set affinity for i
10.3.003 May 2024 10:45
major bugfix:
New features.
Qemu: Proper support for USB network device.
USB address is now automatically assigned to USB network devices thus they.
Can be used without manual configuration.
Conf: Introduce memReserve attribute to .
Some PCI devices have large non-prefetchable memory. This can be a problem
in case when such device needs to be hotplugged as the firmware can't.
Foresee such situation. The user thus can override the value calculated at
Start to accomodate for such devices.
Improvements.
Improve validation of USB devices.
Certain USB device types ('sound', 'fs', 'chr', 'ccid' and 'net') were not.
Properly handled in the check whether the VM config supports USB and thus
Would result in poor error messages.
Virsh: behaviour of `--name` and `--parent` used together when listing checkpoint and snapshots.
The `checkpoint-list` and `snapshot-list` commands would ignore the.
`--name` option to print only the name when used with `--parent`.
Extend libvirt-guests to shutdown only persistent VMs.
Users can now choose to shutdown only persistent VMs when the host is being.
Shut down.
.
Qemu: migration with custom XML.
Libvirt 10.2.0 would sometimes complain about incompatible CPU definition.
When trying to migrate or save a domain and passing a custom XML even
Though such XML was properly generated as migratable. Hitting this depends on the guest CPU definition and the host on which a particular
Domain was running.
Qemu: TLS hostname verification failure in certain non-shared storage migration scenarios.
In certain scenarios (parallel migration, newly also post-copy migration).
Libvirt would wrongly pass an empty hostname to QEMU to be used for TLS
Certificate hostname validation, which would result into failure of the
Non-shared storage migration step::
Error: internal error: unable to execute QEMU command 'blockdev-add': Certificate does not match the hostname.
Create OVS ports as transient.
Libvirt now creates OVS ports as transient which preven
10.2.003 Apr 2024 22:45
major bugfix:
New features.
ch: Basic save and restore support for ch driver.
The ch driver now supports basic save and restore operations. This is.
Functional on domains without any network, host device config defined.
The `path` parameter for save and restore should be a directory.
Qemu: Support for driver type `mtp` in `` devices.
The `mtp` driver type exposes the `usb-mtp` device in QEMU. The.
Guest can access files on this driver through the Media Transfer
Protocol (MTP).
Qemu: Added support for the loongarch64 architecture.
It is now possible for libvirt to run loongarch64 guests, including on.
Other architectures via TCG. For the best results, it is recommended to
Use the upcoming QEMU 9.0.0 release together with the development version
of edk2.
Qemu: Introduce virDomainGraphicsReload API.
Reloading the graphics display is now supported for QEMU guests using
VNC. This is useful to make QEMU reload the TLS certificates without.
Restarting the guest. Available via the `virDomainGraphicsReload` API
And the `domdisplay-reload` virsh command.
.
Qemu: migration from libvirt older than 9.10.0 when vmx is enabled.
A domain with vmx feature enabled (which may be even done automatically.
With `mode='host-model'`) started by libvirt 9.9.0 or older cannot be
Migrated to libvirt 9.10.0, 10.0.0, and 10.1.0 as the target host would
Complain about a lot of extra `vmx-*` features. Migration of similar
Domains started by the affected releases to libvirt 9.9.0 and older
Does not work either. Since libvirt 10.2.0 migration works again with
Libvirt 9.9.0 and older in both directions. Migration from the affected
Releases to 10.2.0 works as well, but the other direction remains broken
Unless the is backported.
Node_device: Don't report spurious errors from PCI VPD parsing.
In last release the PCI Vital Product Data parser was enhanced to report.
Errors but that effort failed as some kernels have the file but don't allow
Reading it causing logs to be spammed with::
Libvirtd
10.1.001 Mar 2024 23:49
major feature:
* **Security**
* ``CVE-2024-1441``: Fix off-by-one error leading to a crash
In **libvirt-1.0.0** there were couple of interface listing APIs
introduced which had an off-by-one error. That error could lead to a
very rare crash if an array was passed to those functions which did
not fit all the interfaces.
In **libvirt-5.10** a check for non-NULL arrays has been adjusted to
allow for NULL arrays with size 0 instead of rejecting all NULL
arrays. However that made the above issue significantly worse since
that off-by-one error now did not write beyond an array, but
dereferenced said NULL pointer making the crash certain in a
specific scenario in which a NULL array of size 0 was passed to the
aforementioned functions.
* **New features**
* nodedev: Support updating mdevs
The node device driver has been extended to allow updating mediated node
devices. Options are available to target the update against the persistent,
active or both configurations of a mediated device.
**Note:** The support is only available with at least mdevctl v1.3.0 installed.
* qemu: Add support for /dev/userfaultfd
On hosts with new enough kernel which supports /dev/userfaultfd libvirt will
now automatically grant QEMU access to this device. It's no longer needed to
set vm.unprivileged_userfaultfd sysctl.
* qemu: Support clusters in CPU topology
It is now possible to configure the guest CPU topology to use clusters.
Additionally, if CPU clusters are present in the host topology, they will
be reported as part of the capabilities XML.
* network: Make virtual domains resolvable from the host
When starting a virtual network with a new ``register='yes'`` attribute
in the ```` element, libvirt will configure ``systemd-resolved``
to resolve names of the connected guests using the name server started
for this network.
* qemu: Introduce dynamicMemslots attribute for virtio-mem