ChangeLog/4.2
System emulation
Incompatible changes
- The minimum version of the glib library is now 2.48
New deprecated options and features
Consult the "Deprecated Features" appendix for the full list of historically deprecated features/options.
Alpha
68k
- Added new "next-cube" machine for emulating a classic NeXTcube (still incomplete, can only boot to the firmware prompt)
Arm
HPPA
Microblaze
MIPS
- Fixed bug involving emulation of ST.W instruction in system mode only (there was no bug in Linux user mode).
Nios2
OpenRISC
PowerPC
- Behavior for unplug of multifunction PCI devices has been changed to match x86. Attempting to unplug any function will cause an unplug of the whole slot.
- There are now separate machine types for POWER8 based and POWER9 based non-virtualized machines (powernv8 & powernv9).
- Default RAM size for powernv machines has been increased to 1.75G which should allow more things to work with the default parameters.
- RTAS (runtime firmware) code is now supplied by SLOF (boot time firmware) instead of by qemu itself. This won't affect users in most cases, but will affect users of -bios which bypasses SLOF, which includes kvm-unit-tests. You'll need a sufficiently recent version of kvm-unit-tests to handle this.
- mffsce, mffscrn and mffscrni POWER9 instructions now supported in TCG
- powernv machine now includes models for the Homer and OCC SRAM system devices
- "info pic" HMP command now reports whether the irq chip is emulated in kernel or in qemu
- pseries machine type no longer permits NUMA nodes with no CPU and no memory - this was already unlikely to work due to problems expressing this configuration to the guest
RISC-V
- The `-initrd` argument is now supported.
s390
- TCG now implements IEP (Instruction Execution Protection), a CPU feature introduced with the z14. Until the "qemu" CPU model is lifted to a z14, it can be enabled using the "max" CPU model ("-cpu max").
SH
SPARC
TileGX
Tricore
x86
Xtensa
Device emulation and assignment
ACPI
Audio
Block devices
GPIO
Graphics
Input devices
IPMI
IPMI UUIDs
UUID handling for the built-in IPMI BMC has changed. Before the UUID was set from the qemu UUID, if that was set. However, in a real system, the UUID of a BMC will be independent of the system UUID. So now the UUID must be explicitly set for a BMC if you want one. Otherwise the BMC will not have a UUID.
To set the UUID of a BMC, use the new property guid=11223344-5566-7788-99aa-bbccddeeff00
for the ipmi-bmc-sim device.
IPMI PCI Devices
New PCI interfaces for IPMI KCS and BT devices are available. The devices pci-ipmi-kcs
and pci-ipmi-bt
are used to choose these devices.
Network devices
NVDIMM
PCI/PCIe
SCSI
SMBIOS
TPM
USB
VFIO
virtio
Xen
fw_cfg
9pfs
- the "local" backend now has a new 'multidevs' option to deal with cross-device setups (ie. when the shared directory spans over multiple devices on the host)
Semihosting
Audio
Character devices
Crypto subsystem
GUI
Host support
- Any backend that supports connection as an Inet client (NBD, chardev, network device, monitor...) can now request to use TCP keep-alive with the server.
Memory backends
Monitor
- bugs in gdbstub handling of F and ! packets have been fixed
Migration
- The 'validate-uuid' migration compatibility checks the UUID matches on migration, preventing accidental migration of the wrong VM to the wrong destination. (Yury Kotov)
Network
- The user mode host network backend now allows to set a guest-visible DNS address which is not in the virtual network, unless restrict mode is enabled.
Block device backends and tools
- Block drivers can now support BDRV_REQ_PREFETCH for more efficient handling of copy-on-read requests; the NBD driver has wired this up to NBD_CMD_CACHE.
- The LUKS block driver supports falloc/full preallocation.
- The NBD server now advertises NBD_FLAG_CAN_MULTI_CONN on shared readonly connections.
- The NBD server and client support the new NBD_CMD_FLAG_FAST_ZERO as an optimization during the copying of sparse images.
- The backup block job now creates a filter node, just like mirror and commit do. Clients that care about the structure of the block graph need to take this into account.
- Several assertion failures relating to the use of an NBD server with iothreads have been fixed.
Tracing
Miscellaneous
User-mode emulation
Alpha
Xtensa
- call0 ABI may be selected for the user emulation with command line option -xtensa-abi-call0 (or with QEMU_XTENSA_ABI_CALL0 environment variable).
TCG
- The tcg tests have had their configuration and build somewhat dissentagled from the main make file
- tcg tests are now in $BUILDDIR/tests/tcg/$TARGET/ (rather than $BUILDDIR/$TARGET/tests/)
Guest agent
Build Information
Python
- The minimum supported version of Python is now 3.5.
GIT submodules
Container Based Builds
- The docker.py tooling now supports podman containers [1] as an alternative to docker
- the docker.py now requires python3 to run
- a number of the cross compiler containers have been updated to Buster
Build Dependencies
- The minimum version of the glib library is now 2.48
Testing
Windows
Known issues
- see Planning/4.2