ChangeLog/6.1
System emulation
Incompatible changes
Consult the 'Removed features' page for details of suggested replacement functionality
- The 'moxie' target has been removed without replacement. There were no known users of this CPU type anymore and no binaries available which could be used for testing.
- The 'lm32' target has been removed without replacement. The only public user of this architecture was the milkymist project, which has been completely inactive for years, and there was never an upstream Linux port.
- The 'unicore32' target has been removed without replacement. Support for this CPU was removed from the upstream Linux kernel a while ago already, and there is no available upstream toolchain to build binaries for it.
- The 'sheepdog' driver has been removed. The corresponding upstream server project is no longer maintained. Users are recommended to switch to an alternative distributed block device driver such as RBD.
- The "info cpustats" HMP command has been removed. It already didn't produce output.
New deprecated options and features
Consult the "Deprecated Features" chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.
- Using non-persistent backing file with pmem=on is now deprecated
68k
Alpha
Arm
- New Aspeed machines: rainier-bmc, quanta-q7l1-bmc
- New npcm7xx machine: quanta-gbs-bmc
- New Cortex-M3 based machine: stm32vldiscovery
- Model for Aspeed's Hash and Crypto Engine
- The mps3-an524 board now supports the alternate memory map (via "-machine remap=QSPI")
- SVE2 is now emulated, including bfloat16 support
- FEAT_I8MM is now emulated (integer matrix multiply accumulate)
- FEAT_TLBIOS is now emulated (TLB invalidate instructions in Outer Shareable domain)
- FEAT_TLBRANGE is now emulated (TLB range invalidate instructions)
- FEAT_BF16 and FEAT_AA32BF16 are now emulated (bfloat16 support for AArch64 and AArch32)
- FEAT_MTE3 (MTE asymmetric fault handling) is now emulated
- The qemu-aarch64 user-mode binary supports a new CPU property sve-default-vector-length
that can be used to set the default SVE vector length, analogous to the kernel's /proc/sys/abi/sve_default_vector_length configuration knob
AVR
Hexagon
HPPA
Microblaze
MIPS
Nios2
OpenRISC
PowerPC
- With recent enough guests now able to (sometimes) detect hot unplug failures on pseries machine type
- Greatly increased maximum cpu count for pseries; it's now basically arbitrarily high - you will hit KVM or emulation limits before a fixed cut off
- Implemented some POWER10 prefixed instructions in TCG
- Optional support for the H_RPT_INVALIDATE hypercall on pseries machine
- Experimental "Virtual Open Firmware" option for pseries (and Pegasos2) which implements most of the firmware behaviour inside qemu.
- Updated ppce500 firmware image, which should fix pci support
- Added 'pegasos2' machine type emulating the Genesi/bPlan Pegasos II board
- 'mac99' machine now limited to 2GiB of RAM (previously it was allowed on the command line, although it probably wouldn't work properly)
Renesas RX
Renesas SH
RISC-V
- Clenaup some left over v1.9 code
- Documentation improvements
- Support for the shakti_c machine
- Internal cleanup of the CSR accesses
- Updates to the OpenTitan platform
- Add support for the OpenTitan timer
- Support for the virtio-vga
- Fix for the saturate subtract in vector extensions (https://bugs.launchpad.net/qemu/+bug/1923629)
- Experimental support for the ePMP spec
- Initial support for the experimental Bit Manip extension
- Update the PLIC and CLINT DT bindings
- Improve documentation for RISC-V machines
- Support direct kernel boot for microchip_pfsoc
- Fix WFI exception behaviour
- Improve CSR printing
- Fix a GDB CSR bug
- A range of other internal code cleanups and bug fixes
s390x
- The s390-ccw bios can now be compiled with Clang, too
- tcg now supports the vector-enhancements facility, and the 'qemu' cpu model has been bumped to a stripped-down z14 GA2
- this should enable distributions built for the z14 to be run under tcg
- cpu models for gen16 have been added
SPARC
Tricore
x86
- New CPU model versions added with XSAVES enabled:
Skylake-Client-v4
,Skylake-Server-v5
,Cascadelake-Server-v5
,Cooperlake-v2
,Icelake-Client-v3
,Icelake-Server-v5
,Denverton-v3
,Snowridge-v3
,Dhyana-v2
hv-passthrough
won't enable Hyper-V feature flags that are unknown to QEMU- New
bus-lock-ratelimit
machine option for rate limiting bus locks by guests - Intel-specific CPUID leaves are not going to be exposed to guests if the vendor ID of the virtual CPU is AMD
- The
fcs:fip
andfds:fdp
fields of thefstenv
andfsave
structures are correctly set. - Add ACPI based PCI hotplug support to Q35 machine. It is enabled and used by default since pc-q35-6.1 machine type.
x86_64
- family/model/stepping of CPU models
qemu64
(all accelerators) andmax
(TCG only) were updated to values corresponding to a 64-bit AMD processor (fixes #191)
Xtensa
Device emulation and assignment
ACPI
Audio
Block devices
Graphics
I2C
- Modified the I2C base to allow I2C muxes to be added
- Added support for the pca9546 and pca9548 I2C muxes.
- Added support for PMBus and several PMBus devices.
- Move sensor devices into a new sensor directory.
- Remove the interfaces with the error-prone transfer direction and use the read/write functions instead.
Input devices
IPMI
- Fixed type of watchdog_expired so vmstate transfer works. Otherwise a vmstate transfer could end up with the wrong data for that field.
Multi-process QEMU
Network devices
NVDIMM
NVMe
Emulated NVMe Controller
PCI/PCIe
SCSI
SD card
SMBIOS
TPM
USB
VFIO
virtio
- virtio-mem now works with vfio
Xen
fw_cfg
9pfs
- Reduce latency of Twalk request (directory tree traversal)
- Fix potential information leak if mtime of export root directory changed (security impact in practice either none or low).
virtiofs
Semihosting
Audio
Character devices
Crypto subsystem
- The preferred crypto backend driver now gnutls, with libgcrypt as the second choice, and nettle as third choice, with ordering driven mostly by performance of the ciphers.
- Use of nettle is discouraged due to its poor performances and lack of FIPS support and may be removed in a future release.
- The built-in fallback crypto backend no longer supports DES or AES-XTS. Use of gnutls/gcrypt backends are required instead.
- The SASL configuration now recommends SCRAM-SHA-256 as the mechanism for simple password authentication
- Documentation is provided outlining how to use the secret passing features
Authorization subsystem
- Documentation is provided outlining how to use the authorization framework for access control
GUI
- VNC password authentication is no longer supported unless building with an external crypto driver backend libirary (choice of gnutls, gcrypt or nettle).
GDBStub
TCG Plugins
- some memory leaks plugged in example plugins
- syscall plugin now summarise totals by default (so as not to duplicate -strace)
- new execlog plugin
- new cache modelling plugin
- plugins are enabled by default on most TCG enabled builds
Host support
Memory backends
Migration
Monitor
QMP
HMP
Network
Block device backends and tools
- Fix a regression in qemu-nbd and qemu-storage-daemon handling file descriptors via socket activation.
- The NBD client connection code has been refactored to operate as a background task, which in turn allows even better responsiveness in the retry code in dealing with a transient failure connection to a server.
qemu-img map --output=json
now includes a"present":bool
field to facilitate reconstructing which parts of a backing chain are actually present.qemu-img convert --bitmaps
now includes a--skip-broken-bitmaps
option to let it succeed even when the source has inconsistent bitmaps, without requiring the deletion of those bitmaps in the source.
Tracing
Miscellaneous
- The settings for the "-smp" option can be also passed to -M using a "smp." prefix, for example "-smp cpus=4" is now a synonym of "-M smp.cpus=4".
User-mode emulation
binfmt_misc
Hexagon
TCG
- tricore now has check-tcg support and tests
- hexagon now has check-tcg support and tests
- fixed bug in replay HMP commands to accept full length icount
- plugins enabled by default for most TCG enabled builds
Guest agent
Build Information
- CentOS 7 is no longer a supported build platform
Python
GIT submodules
Container Based Builds
- improvements to binfmt_misc containers
- most ci containers have been regenerated with lcitool
VM Based Builds
- NetBSD version bumped to 9.2
- OpenBSD version bumped to 6.9
Build Dependencies
- gnutls is now the preferred crypto backend
- minimum nettle is now 3.4
- minimum libgcrypt is now 1.8.0
- minimum gnutls is now 3.5.18
- minimum glib is now 2.56
- minimum gcc is now 7.5.0
- minimum clang is now 6.0
- minimum xcode clang is now 10.0
- minimum libssh is now 0.8.7
Windows
Testing and CI
- playbooks for configuring shared gitlab workers are now in scripts/ci/setup
- travis and cirrus results now integrated into GitLab UI
Known issues
- see Planning/6.1