QEMU Release 8.2

QEMU is a generic and open source machine emulator and virtualizer.

Removed features and incompatible changes

Consult the 'Removed features' page for details of suggested replacement functionality.

The HAX accelerator is not supported anymore; the project has been retired. Use "whpx" or "hvf" respectively on Windows and macOS.
The old machine types pc-i440fx-1.4 to pc-i440fx-1.7 have been removed; use a newer machine type instead
In addition to -audiodev and -audio, QEMU does not create default audio backends anymore if the -nodefaults option are used on the command line.
If an audio backend is created with -audiodev, each audio client (a sound card or VNC) that wants to use it has to specify an audiodev= property. Previously, the first audiodev command line option would be used as a fallback. However -audio can now be used to configure one or more default audio backends, in lieu of the (deprecated and now removed) QEMU_AUDIO_* environment variables.
Running QEMU with KVM requires Linux 4.4 or newer. A future version of QEMU will increase the minimum requirement for Arm hosts to Linux 4.19 (also when running KVM); if this is too restrictive for your use case, please contact us at [email protected].

New deprecated options and features

Consult the "Deprecated Features" chapter of the QEMU System Emulation User's Guide for further details of the deprecations and their suggested replacements.
68k

The Macintosh Quadra 800 (q800) emulation now can boot:
    MacOS 7.1 - 8.1, with or without virtual memory enabled
    A/UX 3.0.1
    NetBSD 9.3
    Linux (via EMILE)

Alpha
Arm

The following machines support the new audiodev property: integratorcp, musicpal, n800, n810, realview-eb, realview-eb-mpcore, realview-pb-a8, realview-pbx-a9, akita, borzoi, spitz, terrier, versatilepb, versatileab, vexpress-a9, vexpress-a15, xlnx-zcu102 z2
Xilinx Versal board now models the CFU/CFI
Xilinx Versal board now models the TRNG device
New CPU types:
    cortex-a710
    neoverse-n2
New architectural features now emulated:
    FEAT_PACQARMA3
    FEAT_EPAC
    FEAT_Pauth2
    FEAT_FPAC
    FEAT_FPACCOMBINE
    FEAT_TIDCP1
    FEAT_MOPS
    FEAT_HBC
    FEAT_HPMN0
The SMMUv3 now advertises the SMMUv3.1-XNX feature

AVR
Hexagon
HPPA

New 64-bit PA-RISC 2.0 CPU emulation, enable with "-cpu hppa64" and "-cpu hppa" for 32-bit CPU (default)
New HP C3700 machine emulation, includes an emulated Astro memory controller and four Elroy PCI bridges
Start 64-bit machine with "-machine C3700" and 32-bit CPU with "-machine B160L"
Improved TLB performance
Block-TLB (BTLB) support for 32-bit PA-RISC CPUs
New SeaBIOS-hppa version 12 to support HP C3000 with Astro & Elroy

LoongArch
Microblaze
MIPS

The fuloong2e machine supports the new audiodev property.

Nios2

signal tests disabled due to bitrot

OpenRISC
PowerPC

The pegasos2 and 40p machines support the new audiodev property.

Renesas RX
Renesas SH
RISC-V
ISA and Extensions

Add zmmul isa string
Add smepmp isa string
Add RISC-V vector cryptographic instruction set support
Implement WARL behaviour for mcountinhibit/mcounteren
Add Zihintntl extension ISA string to DTS
Fix zfa fleq.d and fltq.d
Add RISC-V KVM AIA Support
Fix riscv,pmu DT node path in the virt machine
Update CSR bits name for svadu extension
Mark zicond non-experimental
Align the AIA model to v1.0 ratified spec
Use env_archcpu for better performance
Rename ext_icboz to ext_zicboz
Rename ext_icbom to ext_zicbom
Rename ext_icsr to ext_zicsr
Rename ext_ifencei to ext_zifencei
Add RISC-V Virtual IRQs and IRQ filtering support
Rename epmp to smepmp and expose the extension
Support zicntr/zihpm flags and disable support
Update RISC-V vector crypto to ratified v1.0.0
Support discontinuous PMU counters

Machines

Remove 'host' CPU from TCG
riscv_htif Fixup printing on big endian hosts
Add support for the max CPU
Detect user choice in TCG
Remove RVG warning
Change default linux-user cpu to 'max'
Update 'virt' machine core limit
Add query-cpu-model-expansion API

Fixes and Misc

Fix page_check_range use in fault-only-first
Fix upper/lower mtime write calculation
Make rtc variable names consistent
Use abi type for linux-user target_ucontext
Fix satp_mode_finalize() when satp_mode.supported = 0
Fix non-KVM --enable-debug build
Add new extensions to hwprobe
Use accelerated helper for AES64KS1I
Allocate itrigger timers only once
Respect mseccfg.RLB for pmpaddrX changes
Don't read the CSR in riscv_csrrw_do64
Clear CSR values at reset and sync MPSTATE with host
Fix the typo of inverted order of pmpaddr13 and pmpaddr14
Replace GDB exit calls with proper shutdown
Support KVM_GET_REG_LIST
Deprecate capital 'Z' CPU properties
Fix vfwmaccbf16.vf
Clear pmp/smepmp bits on reset
Ignore pmp writes when RW=01
Correct CSR_MSECCFG operations
Clear the Ibex/OpenTitan SPI interrupts even if disabled
Set the OpenTitan priv to 1.12.0
Add Zicboz block size to hwprobe
Create the virt machine FDT before machine init is complete
Don't verify ISA compatibility for zicntr and zihpm
Fix SiFive E CLINT clock frequency
Fix invalid exception on MMU translation stage
Fix mxr bit behavior

s390x

Emulated VFMIN and VFMAX instructions now correctly raise a specification exceptions when bits 1-3 of M5 are set
Fixed emulated VSTL instruction with a large length
Fixed emulated VREP instruction to use a 16-bit immediate
Fixed the "ignored match" case in the emulated VSTRS instruction
Enable crypto adapter passthrough (vfio-ap) for protected virtualization guests
Support s390x CPU topology (books and drawers, STSI 15.1.x instruction, PTF instruction) with KVM

SPARC
Tricore

Added TC37x CPU that implements ISA v1.6.2
Added CRCN, FTOU, FTOHP, and HPTOF instructions
Fixed RCPW/RRPW_INSERT instructions for width=0
Fixed RCRR_INSERT using the wrong destination register
Fixed FTOUZ being only available from ISA v1.3.1 upwards

x86
Xen emulation under KVM

Support PV console and network devices.
Bug fixes to support running Xen PV guests under "shim", documented in the "Xen HVM guest support" page.
Simplify command line for block and network devices.

TCG

Support for SHA instructions.

Known issues

[since 8.1] Windows German version might fail to recognize NIC, for possible workaround[s] see: https://gitlab.com/qemu-project/qemu/-/issues/774

Xtensa
Device emulation and assignment
ACPI / SMBIOS
Audio

Added virtio-sound device which implements capture and playback from inside a guest using the configured audio backend of the host machine. It is documented in the "Device Emulation / virtio sound" page.

Block devices

Parallels Format Driver
    Improved 'qemu-img check' facility
        Recover from broken data_off in the header
        Drop clusters outside of the image file
        De-duplicate clusters located on the same offset in the host file
    Introduced ability to execute check automatically (if disk image is opened in read/write mode) if corruption is detected by open
    Cluster allocation is now based on the cluster used bitmap (clusters could be allocated in holes inside image file)
    Minimal DISCARD & WRITE_ZEROES support

Graphics

New virtio-gpu rutabaga device. It allows various abstractions of GPU and display virtualization, coming from the Android/CrosVM graphical stack Rutabaga doc. This should help Android Emulator use upstream QEMU, and offers alternative solutions (or context types) than virgl.
ati-vga pixman-less support and fixes
virtio-gpu blob=true VM can now be migrated

Hyper-V

New Hyper-V Dynamic Memory protocol device hv-balloon. This driver is like virtio-balloon on steroids for Windows guests: it allows both changing the guest memory allocation via ballooning and inserting pieces of extra RAM into it on demand from a provided memory backend via Windows-native Dynamic Memory protocol.

I2C
Input devices
IPMI
Multi-process QEMU
Network devices
NVDIMM
NVMe
PCI/PCIe

Added Astro Memory controller with Elroy PCI host busses for PA-RISC (hppa) machines

SCSI
SD card
SMBIOS
TPM
UFS

Support for UFS emulation through the new ufs, ufs-lu devices based on spec version v3.1
Support for multiple logical units through the ufs-lu  device
Support for UFS initialisation
Support for SCSI commands including read/write.
Support for query request commands
Typical usage:

-drive file=<file>,if=none,id=<drive_id>
-device ufs,serial=<serial>,id=<bus_name>, nutrs=<N[optional]>,nutmrs=<N[optional]>
-device ufs-lu,drive=<drive_id>,bus=<bus_name>

USB
VFIO

P2P support for VFIO migration
Removal of NVIDIA V100 GPU with NVLink2 support (PPC)
Dynamic MSI-X allocation support
ramfb migration support
Support for non 64b IOVA space
Preparatory changes for new IOMMUFD backend

virtio

virtio-mem now supports to dynamically consume multiple memslots instead of statically a single big one. The feature can be enabled using "dynamic-memslots=on", which can severely reduce KVM memory slot metadata overhead with large virtio-mem devices that only expose a small amount of memory to the VM. Note that the feature is incompatible with vhost devices that provide less than 509 memslots, like most vhost-user devices.
Added virtio-sound device. See Audio section/virtio-sound

vDPA
Xen

Support PV unplug for AHCI disks with the q35 platform.
Allow creation of PV console devices from the command line.
Allow creation of PV network devices, including '-nic xxx,model=xen-net-device' and the default NIC.
Support '-drive file=FILENAME,if=xen' for creating PV block devices with automatic names.

fw_cfg
9pfs
virtiofs
Semihosting
Audio

Added virtio-sound device. See Audio section/virtio-sound

Character devices
Crypto subsystem
Authorization subsystem
GUI

cocoa: add zoom-to-fit display option
gtk: various minor fixes

GDBStub

fixes cases where wrong threads were reported to gdb

TCG Plugins

fix bug in reporting too many instructions to qemu_plugin_tb_n_insns()
fix locking on execlog
windows support

Host support
Memory backends

memory-backend-file now supports the "rom" parameter. "share=off,readonly=off,rom=on" can be used for VM-templating with R/O files: open the file R/O, but create writable RAM instead of Read Only Memory (ROM).
"VM templating" documentation was added

Migration

Legacy compression migration is deprecated ("compress" as capability, "compress-level", "compress-threads", "compress-wait-thread", "decompress-threads" as parameters). Suggest to use multifd compression instead.
Block migration is deprecated. QMP command "migrate" parameters "blk" and "inc" are deprecated. Suggest to use driver-mirror with NBD instead.
Fixed race conditions for postcopy migration when preempt mode is enabled.
Postcopy recovery now allows network failure to happen even during RECOVER phase.
Added migration parameter "avail-switchover-bandwidth" migration parameter, can be used when the user observes extremely slow bandwidth during migration, causing migration to never complete.
Initial part of migration mode "cpr-reboot" integrated.

Monitor
QMP
HMP
Network
Block device backends and tools

The qemu NBD implementation for both server and client now supports the recent NBD protocol extension of 64-bit extended headers. When both sides of an NBD connection support this extension, commands like write zeroes or block status can operate on 64-bit effect lengths, rather than being capped to transaction sizes smaller than 4G.

Tracing
Semihosting
Miscellaneous

Allow dump-guest-memory to output standard kdump format

User-mode emulation
runtime

Since this release, qemu linux-user implements and provides vdso for most popular architectures.
binfmt_misc
alpha

Emulated /proc/cpuinfo output in linux-user

arm/arm64/aarch64

Emulated /proc/cpuinfo output in linux-user

LoongArch
HPPA
s390
x86
TCG backends
RISC-V
Guest agent
Build Information

Coding style has been updated to allow loop variables
It is possible to build a non-relocatable binary of QEMU with the configure option --disable-relocatable. The default remains a relocatable install (that is, all the directories within the install prefix are computed based on the path to the executable).

Build Dependencies

Building QEMU now requires Python 3.8. As a consequence, building on Debian 10 is not supported anymore (unless a newer version of Python is installed by other means).
Building QEMU now uses the tomli library if Python is older than version 3.11. However, version 2.0.1 is bundled in case tomli is not installed on the host.
The libfdt library is no longer bundled with QEMU. However, if QEMU is configured with --enable-download and the library is absent, then it will be downloaded and built together if any emulators need it.
The Pixman library is no longer strictly required. The VC, VNC, Gtk, Spice, screendump features and a few devices still require it.
When running make check-avocado, the Avocado testing framework and pycdlib must be present if the build tree was configured with --disable-download. Until 8.1, Avocado was always downloaded from PyPI.

Docker Tweaks

debian-i686 replaces fedora-i386 for 32 bit x86 cross builds
debian-am64 and debian-native merged into a common debian container built from lcitool for latest deps

Windows
Testing and CI

ccache has been enabled for CI builds
container backend is now selected by configure script

  • All
  • Subscribed
  • Moderated
  • Favorites
  • wartaberita
  • random
  • uselessserver093
  • Food
  • aaaaaaacccccccce
  • [email protected]
  • test
  • CafeMeta
  • testmag
  • MUD
  • RhythmGameZone
  • RSS
  • dabs
  • TheResearchGuardian
  • Ask_kbincafe
  • KbinCafe
  • Testmaggi
  • Socialism
  • feritale
  • oklahoma
  • SuperSentai
  • KamenRider
  • All magazines