ChangeLog/6.0
System emulation
Incompatible changes
- The deprecated pc-1.0, pc-1.1, pc-1.2 and pc-1.3 machine types have been removed (they likely could not be used for live migration from old QEMU versions anymore anyway). Use a newer pc-i440fx-... machine type instead.
- The change QMP command has been removed. Use blockdev-change-medium or change-vnc-password instead.
- The -show-cursor option has been removed. Use -display sdl,show-cursor=on instead.
- The -realtime option has been removed. Use -overcommit mem-lock=on|off' instead.
- The -tb-size option has been removed. Use -accel tcg,tb-size=... instead.
- The configure script --enable/disable-git-update args have been replaced with --with-git-submodules
New deprecated options and features
Consult the "Deprecated Features" chapter of the QEMU System Emulation User's Guide for the full list of historically deprecated features/options.
- The --enable-fips option has been deprecated. Consumers wishing to have FIPS compliance must build QEMU with libcrypt and gnutls, NOT nettle.
68k
Alpha
Arm
- QEMU now supports emulation of the Arm-v8.1M architecture and the Cortex-M55 CPU
- Emulation of ARMv8.4-TTST extension is now supported
- Emulation of ARMv8.4-SEL2 extension is now supported
- Emulation of the PAuth extension now supports an optional IMPDEF pauth algorithm which is not cryptographically secure but is much faster to compute
- Emulation of ARMv8.4-DIT extension is now supported. (Note that QEMU's implementation does not in fact provide any timing guarantees; emulation of the extension is purely to support guests which query its presence and work with the PSTATE.DIT bit.)
- xlnx-zynqmp boards now support the Xilinx ZynqMP CAN controllers
- the sbsa-ref board now supports Cortex-A53/57/72 cpus
- the xlnx-versal board now has USB support
- the sabrelite board emulation has been improved and it can now run U-Boot
- the npcm7xx boards now have ADC and PWM emulation
- the gdbstub's representation of SVE registers allows GDB to properly handle aliasing
- the 'virt' board now provides a mechanism for secure (EL3) firmware to power down or reset the system
- documentation for vexpress/versatile has been updated with example kernel configuration/command lines
AVR
HPPA
Microblaze
MIPS
- Loongson-3 "virt" machine added
Nios2
OpenRISC
PowerPC
- Deprecated 'compat' property of server class POWER cpus removed (use the 'max-cpu-compat' machine option instead)
- You can now explicitly choose 'kvm_type=auto' rather than only being able to do that by not setting it at all.
Renesas RX
Renesas SH
RISC-V
- Improve the sifive_u DTB generation
- Add QSPI NOR flash to Microchip PFSoC
- Fix a bug in the Hypervisor HLVX/HLV/HSV instructions
- Fix some mstatus mask defines
- Ibex PLIC improvements
- OpenTitan memory layout update (Breaking change)
- Initial steps towards support for 32-bit CPUs on 64-bit builds
- Automate GDB XML generation (should fix GDB E14 errors)
- Sifive OTP handle OTP access failures
- Correctly generate a PMP failure when no PMP entry is configured
- Fix 32-bit Linux boot problems with DTB placement
s390
- Linux kernels built with clang-11 and clang-12 now work correctly under tcg
SPARC
TileGX
Tricore
x86
- Intel PT can now be exposed to KVM guests when
CPUID.(EAX=14,ECX=0).ECX[LIP]
(bit 31) is 1. Previous versions only supported Intel PT when LIP=0 - New
sev-inject-launch-secret
QMP command - The WHPX accelerator supports accelerated APIC ("-accel whpx,kernel-irqchip=on")
- The microvm machine type got a second (optional) ioapic for the virtio-mmio irq lines, which in turn allows 24 (instead of 8) virtio-mmio devices.
Xtensa
Device emulation and assignment
ACPI
Audio
Block devices
Graphics
Input devices
IPMI
Multi-process QEMU
- The experimental
-machine x-remote
and-device x-pci-proxy-dev
options have been added to support out-of-process device emulation. Currently only thelsi53c895
SCSI device can be emulated in a separate process. Please see the documentation and Features/MultiProcessQEMU for details on this experimental feature, which is still subject to change.
Network devices
NVDIMM
- nvdimm devices will check that
-device nvdimm,unarmed=on
option is used when using-object memory-backend-file,readonly=on
NVMe
PCI/PCIe
- The 'pvpanic-pci' device is a PCI-device version of the 'pvpanic' ISA device, which can be used on systems with only PCI and no ISA bus as a mechanism for the guest to inform QEMU that it has paniced.
SCSI
SD card
SMBIOS
TPM
USB
- Support for writing usb traffic to package capture files for inspection with wireshark has been added. Use the new pcap=<file> property added to all usb devices to enable this.
VFIO
virtio
Xen
fw_cfg
9pfs
virtiofs
- Security fix for CVE-2020-35517 - prevent opening of special files
Semihosting
- Added support for RiscV (ARM style semihosting)
- Added support for HEAPINFO, ELAPSED, TICKFREQ, TMPNAM and ISERROR to semihosting
Audio
Character devices
Crypto subsystem
experimental qmp interface
GUI
- vnc: support for cursors with alpha channel has been added.
- vnc: support for extended desktop resize has been added. With virtio-vga the guest display should adapt to vnc client window resizes.
GDBStub
- the stub now supports the Xfer:auxv:read for Linux user guests
- the GDB stubs now uses the "official" gdb representation for SVE registers
Host support
Memory backends
- hostmem-file: added readonly=on|off option
Migration
- New feature: Background RAM snapshot from Andrey Gruzdev; using the Linux UFFD-WP feature, enabling fixed size snapshots even with busy guests
- QMP native snapshot commands -snapshot-{save,load,delete}
- query/info-migrate now display the migration blocker status and the reasons for blocking.
Monitor
QMP
- A new command set-action has been introduced. The command generalizes watchdog-set-action and allows changes to all the settings of the (also new) -action command line option.
- New OOB commands yank and query-yank have been introduced. The yank command allows to recover from a hanging QEMU by shutting down sockets for example. See the QMP documentation for more information. The query-yank command lists the available things to yank.
- The new QMP commands load-snapshot, save-snapshot and delete-snapshot provide a mechanism for managing internal qcow2 snapshots, that was previously only available via HMP commands loadvm, savevm and delvm
HMP
Network
Block device backends and tools
- For its background operation, the backup job now runs multiple asynchronous requests in parallel
- The stream block job now uses the copy-on-read block driver (and its new bottom option) to let copy-on-read help make progress even when using any of block-stream’s base, base-node, or bottom options
- The new QMP commands load-snapshot, save-snapshot and delete-snapshot provide a mechanism for managing internal qcow2 snapshots, that was previously only available via HMP commands loadvm, savevm and delvm
Tracing
Miscellaneous
- A new command line option -action, with suboptions panic, shutdown, reboot and watchdog. -action subsumes the pre-existing options -no-shutdown (-action panic=pause,shutdown=pause), -no-reboot (-action reboot=shutdown) and -watchdog-action; plus, it allows the user to choose whether guest panic should pause the guest (-action panic=pause), shut it down (-action panic=poweroff, the default) or be ignored (-action panic=none).
- A new generic machine option confidential-guest-support was added to (partially) unify configuration for AMD SEV memory encrypt, POWER PEF and s390 Protected Virtualization, plus future methods of protecting a guest from eavesdropping by a compromised hypervisor.
User-mode emulation
TCG
- Added support for Apple Silicon hosts (macOS)
Guest agent
Build Information
- New "gtags" build target for developers
- checkpatch now better handles commit ids when checking
Python
GIT submodules
Container Based Builds
- handling of binfmt_misc containers has improved the handling of dynamically linked binaries pointing at symlinks
Build Dependencies
Windows
Testing and CI
Known issues
- see Planning/6.0