ChangeLog/10.0

From QEMU

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)

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

Host support

Windows

Known issues