ChangeLog/11.0

From QEMU

Release schedule: Planning/11.0.

System emulation

Removed features and incompatible changes

  • The Arm ast2700a0-evb machine has been removed. Use ast2700a1-evb instead.
  • The pc-i440fx-2.6, pc-q35-2.6, pc-i440fx-2.7 and pc-q35-2.7 machines have been removed.
  • In the migrate command, the "fd:" URI scheme can only be used with sockets
  • The migrate-set-capabilities "zero-blocks" option was left behind and had no effect since QEMU 9.1; it has now been removed.
  • The "detach" argument to the migrate QMP command has always been ignore and has now been removed.
  • The "query-migrationthreads" command has been removed, as it reported only a limited and not very useful set of information.
  • The "debug-threads" argument of "--name" is now deprecated. Thread naming is unconditionally enabled on all platforms where it is supported.

New deprecated options and features

68k

Alpha

Arm

  • New CPU architectural features emulated:
    • FEAT_ASID2
    • FEAT_E2H0
  • Acceleration of the SMMUv3 IOMMU is now possible, controlled by "-device arm-smmuv3,accel=on"; this can be used to improve performance of passthrough of vfio-pci devices to a KVM VM
  • The Windows whpx accelerator is now supported on Arm with the "virt" board
  • Emulated Cortex-M CPUs now emulate WFE by stopping execution, so wait-for-WFE-event loops don't use so much host CPU
  • TCG can now emulate CPUs with SME but not SVE ("-cpu max,sme=on,sve=off"). If you were using "-cpu max,sve=off" and relying on this also disabling SME, you should switch to "-cpu max,sme=off,sve=off".
  • The virt board supports a new "virtio-mmio-transports" property if you want to avoid providing the guest with unused virtio-mmio transports.
  • There is a new test which confirms and defends compliance of the virt board with the VBSA spec.
  • KVM CPUs now support a "kvm-psci-version" property to specify what PSCI version KVM should provide to the guest.
  • The deprecated 'highbank' and 'midway' machines have been removed.
  • The hvf accelerator on macos will now expose SME2 to the guest if it is available on the host CPU.

AVR

Hexagon

HPPA

  • SeaBIOS-hppa v21 with fixes for 715 machine
  • SeaBIOS-hppa v22 adds the 64-bit A400 server and the 64-bit PAT firmware extension
  • SeaBIOS-hppa v23 with lots of PAT fixes and support for 40- & 44-bit physical address space CPUs
  • SeaBIOS-hppa v24 fully implements the Astro PCI initialization and thus allows PCI VGA on 64-bit, improves upcoming HP-UX 64-bit support and has initial support for multicell machines
  • NCR710 fixes for NetBSD and HP-UX on 715 machine
  • Dropped pre-installed Diva BMC PCI card from B160L machine
  • Allow emulation of 64-bit CPUs with 40 and 44 bits physical address space
  • TOC (crash) support on 64-bit machines, can be initiated with "NMI" command in QEMU monitor
  • 64-bit gdb support

LoongArch

  • KVM: PMU migration support
  • TCG: Add LA v1.1 instructions
  • TCG: Add sc.q instructions
  • TCG: Add llacq/screl instructions
  • TCG: Add estimated reciprocal instructions

Microblaze

  • The qemu-system-microblazeel binary has been removed. The qemu-system-microblaze (without the "el" suffix) can handle little endian nowadays, too, so users should use that one instead.

MIPS

OpenRISC

PowerPC

Renesas RX

Renesas SH (sh4)

RISC-V

ISA and Extensions

  • Add Zilsd and Zclsd extension support
  • Add RISCV ZALASR extension
  • Support Smpmpmt extension

Machines

  • Add all available CSRs to 'info registers'
  • Add 'riscv-aia' accel prop info to documentation
  • Add support for MIPS P8700 CPU

Fixes and Misc

  • Fix IOMMU MemoryRegion owner
  • Don't look up DDT cache in Off and Bare modes
  • Fix integer overflow in cm_base calculation
  • Fix null pointer dereference in cpu_set_exception_base
  • Set SiFive PDMA done bit upon completion
  • Remove deprecated 'riscv, delegate' device-tree property
  • Fix OCP FP8 E4M3 conversion issues
  • Fix SiFive UART spurious IRQ issue and misc updates
  • Fix missing flags merge in probe_pages for cross-page accesses
  • Fix page probe issues in vext_ldff
  • Fix scountovf CSR behavior in VS-mode and M-mode

s390x

  • Implement DIVIDE TO INTEGER instruction in the TCG code
  • Add support for booting from virtio-blk-pci devices

SPARC

Tricore

x86

  • New CPU model for Diamond Rapids
  • A new accelerator "nitro" can be used together with the new machine -M nitro to run Nitro Enclaves natively under QEMU.

Other accelerators

  • MSHV now requires Linux 6.19
  • WHPX now uses improved and faster emulation code
  • WHPX now supports x2apic and vapic

KVM

  • Support for CET virtualization
  • SEV-ES termination requests are reported as guest panic events
  • SEV-SNP and TDX machines can now be reset.

Xtensa

Device emulation and assignment

ACPI / SMBIOS

Audio

Block devices

Graphics

  • The virtio-gpu now has support for native context drivers
  • Each output can have its own resolution specified

Hyper-V

I2C

Input devices

IPMI

  • Add support for LAN configuration commands in the simulated BMC.

Multi-process QEMU

Network devices

NVDIMM

NVMe

PCI/PCIe

SCSI

SD card

SMBIOS

TPM

UFS

USB

VFIO

virtio

vDPA

Xen

fw_cfg

9pfs

virtiofs

Semihosting

Audio

Character devices

Crypto subsystem

Authorization subsystem

I/O subsystem

  • Fix memory leak in TLS handshaking on failure

GUI

GDBStub

  • better handling of EIO, ENOSYS signals in F packets
  • CI testing enabled with gdb-multiarch in debian-all-test-cross

TCG Plugins

  • Support C++ plugins in-tree
  • linux-user: add plugin API to filter syscalls
  • Allow redirect pc with new qemu_plugin_set_pc()
  • Added discontinuity callback API (for interrupts, exceptions, host calls)

Host support

Memory backends

  • Memory preallocation can now use upto 32 threads instead of 16, to provide increased startup performance

Migration

  • Fixed mapped-ram migration issues when used together with x-ignore-shared
  • Optimized dirty sync process on unaligned ramblocks with KVM
  • New migration status "failing", denoting an error occurred during migration and clean-up is underway
  • COLO now supports multifd

Monitor

QMP

HMP

Network

Block device backends and tools

  • The NFS block driver has gained support for libnfs v6.
  • The curl block driver supports the new option "force-range" for images accessed with HTTP(S) which assumes support for the "Range" HTTP header without first probing it with a HEAD request. (It is still verified with a GET request.) This is primarily useful with servers that don't allow HEAD requests.
  • The FUSE block export doesn't process requests synchronously any more, which both means that a VM running in the same QEMU process isn't blocked any more while a FUSE request is handled and improves performance by allowing parallel FUSE requests. The FUSE export can now also be configured to use multiple iothreads.
  • The "query-block" QMP command now supports the same "flat" option that "query-named-block-nodes" has already supported since QEMU 5.0.
  • qemu-img create for qcow2 gained the new option "keep_data_file", which provides a convenient way to use an existing raw image as the data file for a new qcow2 image.

Block jobs

Tracing

  • Fixed interleaving between trace event messages and error messages when using the 'log' backend

Semihosting

Miscellaneous

User-mode emulation

  • Added termios2 support (TCGETS2, TCSETS2, TCSETSW2, TCSETSF2 ioctls)
  • Updated statx() syscall
  • futex() syscall fixes
  • Do not truncate upper 32-bits of 64-bit file offset (loff_t) with strace
  • Fix TIOCGSID to IOC_R
  • Fix mmap() when start > reserved_va
  • Improve mremap() strace output
  • Loader fix when zero_bss and executable code overlap
  • Fix mremap() with old_size=0 for shared mappings

TCG

  • A new TCG_TEST_FILTER is available to run a subset of TCG tests over all configured architectures

LoongArch

Record/Replay

RISC-V

Guest agent

  • Implement guest-network-get-route for Windows
  • Fix guest-fs-freeze cause "Access denied Event ID 8194" in Event Viewer (Windows-only)

Documentation

Build Information

Rust usage

Dependencies

  • configure will now install the qemu.qmp package (which is used to run tests) from the same .whl file available in PyPI, instead of including the source in the PYTHONPATH environment variable when running the tests. This should have no effect currently, because the QEMU source includes the latest release in PyPI.
  • QEMU needs the Python wheel and setuptools to be installed (or will download them from PyPI, unless configured with --disable-download).
  • python3-sqlite has been dropped from dependencies (was needed for the old avocado testing framework)

Testing and CI

  • all except legacy (mips) Debian containers are now based on Trixie
  • the debian-all-test-cross container now managed by lcitool
  • the debian-all-test-cross container also includes gdb-multiarch for gdbstub testing
  • openSUSE container has been bumped to version 16

Host support

  • Keeping 32-bit host support alive was a substantial burden for the QEMU project. All support for all 32-bit host systems has been dropped.

Windows

Known issues