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".
- New CPU architectural features emulated:
- FEAT_AFP
- FEAT_RPRES
- FEAT_XS
- The Stellaris boards now model both I2C controllers
AVR
CRIS
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
Nios2
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
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.
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
virtio
- virtio-mem is now also supported on s390x
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
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.
As a reminder, --enable-rust does not work on Debian bullseye, which otherwise remains a supported platform for QEMU.
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