ChangeLog/10.0
Release schedule: Planning/10.0.
System emulation
Removed features and incompatible changes
Consult the 'Removed features' page for details of suggested replacement functionality.
New deprecated options and features
- The -old-param option (used for booting some ancient Arm kernels) has been deprecated, as none of the boards QEMU supports need it.
- The Arm PXA2xx CPUs and the iwMMXt emulation have been deprecated and will be removed in a future release.
Consult the "Deprecated Features" chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.
68k
Alpha
Arm
- iwMMXt emulation and the PXA2xx CPUs have been deprecated and will be removed in a future release. (You were only using this if you explicitly selected a pxa2xx CPU type on the command line or by environment variable.)
- When emulating FEAT_PAUTH, the default pointer authentication algorithm has been changed from the architected QARMA5 algorithm to QEMU's implementation-defined algorithm. This is non-cryptographic but is significantly faster, which is what most users will want. If you need the architected algorithm you can select it with the 'pauth-qarma5' CPU option, e.g. "-cpu max,pauth-qarma5=on".
- The CPU now emulates the Secure EL2 physical and virtual timers
- New CPU architectural features emulated:
- FEAT_AFP
- FEAT_RPRES
- FEAT_XS
- The Stellaris boards now model both I2C controllers
- The 'virt' board now has a 'highmem-mmio-size' property to allow configuring a larger PCIe MMIO region; this can be useful when passing through a lot of PCI devices with large MMIO BARs to a VM.
- New board models:
- "npcm845-evb": NPCM845 Evaluation board
- "imx8mp-evk": i.MX 8M Plus EVK board
AVR
Hexagon
HPPA
- New SeaBIOS-hppa version 18 with lots of fixes and enhancements
- Emulate up to 256 GB RAM on 64-bit guests
- Speed up translation time
- Improve virtual CPU reset function
- Support space register hashing via diag registers as required by 64-bit HP-UX
- Add emulation of Diva GSP ("Guardian Service Processor" / BMC) PCI boards
- Artist graphic card can be disabled on command line with "-global artist.disable=true"
- Added Astro LLMIO support, which allows adding other graphic cards, e.g. with "-device ati-vga"
LoongArch
Microblaze
MIPS
OpenRISC
PowerPC
Renesas RX
Renesas SH (sh4)
RISC-V
ISA and Extensions
- Support riscv-iommu-sys device
- Introduce svukte ISA extension
- Support ssstateen extension
- Reduce the overhead for simple RISC-V vector unit-stride loads and stores
- Add 'sha' support
- Add traces for exceptions in user mode
- Update Pointer Masking to Zjpm v1.0
- Add Smrnmi support
- Add RISC-V Counter delegation ISA extension support
- Add support for Smdbltrp and Ssdbltrp extensions
- Introduce a translation tag for the IOMMU page table cache
- Support Supm and Sspm as part of Zjpm v1.0
Machines
- Add Tenstorrent Ascalon CPU
- Support for RV64 Xiangshan Nanhu CPU
- Add AIA userspace irqchip_split support
- Add Microblaze V generic board
- Support 64-bit address of initrd
- Add V bit to GDB priv reg
Fixes and Misc
- Correct the validness check of iova
- Fix APLIC in_clrip and clripnum write emulation
- Upgrade ACPI SPCR table to support SPCR table revision 4 format
- Fix timebase-frequency when using KVM acceleration
- Convert htif debug prints to trace event
s390x
- Add feature definitions and CPU model for the generation 17 mainframe CPU
- Add support for virtio-mem on s390x
- Fix CPU emulation bugs with the PPNO and MCV instructions
- Allow bypassing IOMMU for PCI devices for enhanced performance
SPARC
Tricore
x86
- Faster emulation of string instructions.
KVM
Xtensa
Device emulation and assignment
ACPI / SMBIOS
Audio
Block devices
- Add new handshake-max-seconds optional parameter to nbd-server-start QMP command, and counterpart --handshake-limit option to qemu-nbd. This allows fine-tuning the duration allowed for client negotiation during integration testing.
- qemu-nbd no longer hangs on exit when run as a daemon (the --fork command-line option) when qemu is built with the simple trace backend.
Graphics
- Add new 'apple-gfx-pci' and 'apple-gfx-mmio' devices which use the macOS host's ParavirtualizedGraphics.framework to provide accelerated graphics to macOS guests. 'apple-gfx-pci' is intended for use on x86-64, 'apple-gfx-mmio' replicates the graphics device implemented by the Virtualization.framework from the aarch64 version of macOS.
Hyper-V
I2C
Input devices
IPMI
Multi-process QEMU
Network devices
NVDIMM
NVMe
PCI/PCIe
SCSI
SD card
SMBIOS
TPM
UFS
USB
VFIO
- Improved support for IGD passthrough on all Intel Gen 11 and 12 devices
- Refactored dirty tracking engine to include VFIO state in calc-dirty-rate
- Improved error reporting for MMIO region mapping failures
- Improved property documentation
- Implemented basic PCI PM capability backing
- Added multifd support for VFIO migration
- Added support for old ATI GPUs (x550)
- Deprecated vfio-plaform
- Misc fixes
virtio
- virtio-mem is now also supported on s390x
- virtio-balloon guests stats are now cleared (set to zero) upon device/machine reset.
vDPA
Xen
fw_cfg
9pfs
- Fix a regression regarding CVE-2023-2861 with security_model=passthrough which caused certain sockets on guest to fail (bug #2337, commit b5e3f63a).
- multidevs=remap is new default behaviour (see commit a2f17bd4).
virtiofs
Semihosting
Audio
Character devices
Crypto subsystem
Authorization subsystem
GUI
GDBStub
- linux-user processes can defer connection using -g <port>,suspend=n
TCG Plugins
- core plugin code is now only built once
Host support
Memory backends
Migration
- Fixed regressions in s390x (#2704) and pre-9.0 to post-9.1 migrations with multifd capability (#2720)
- Fixed long-standing bug with paused VMs (#686)
- New migration mode "cpr-transfer" to support live updates (documentation).
Monitor
QMP
HMP
Network
Block device backends and tools
Tracing
Semihosting
Miscellaneous
User-mode emulation
signals
runtime
- Improved networking emulation regarding netlink and multicast
binfmt_misc
alpha
arm/arm64/aarch64
HPPA
LoongArch
PowerPC
- Added /proc/cpuinfo file emulation
s390
x86
TCG
LoongArch
Record/Replay
RISC-V
Guest agent
Build Information
Process
Rust usage
Support for device models written in the Rust programming language is still considered experimental, and does not have full feature parity compared to QEMU binaries that are compiled with --disable-rust. However, it has matured enough that developing new devices can (almost entirely) be done in the safe subset of Rust.
For now, binaries compiled with --enable-rust link statically to Rust libstd. This is not suitable for e.g. Linux distributions but could be okay for other, special purpose distributions of QEMU.
The current minimum supported Rust version is 1.63.0, with plans to move to 1.77.0. This means that:
- --enable-rust does not work with Debian bullseye's rustc packages.
- in the future, --enable-rust will not support Debian bookworm's rustc for the mips64el architecture, and will require the rustc-web package for other architectures.
Debian bullseye and bookworm otherwise remains supported platforms for QEMU; Debian bullseye will cease to be a supported platform as soon as Debian trixie is released.
Dependencies
Testing and CI
- updated baseline tuxrun tests to 19/11/2024 images
- added new test for virtio-vulkan (needs upto date build with access to dri)
- qtest clock_set and clock_step now check return values
- riscv64 cross compile now based on trixie