ChangeLog/10.0

From QEMU
Revision as of 17:02, 11 March 2025 by Legoater (talk | contribs) (→‎VFIO)

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)

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

Host support

Windows

Known issues