ChangeLog/3.1

From QEMU

System emulation

Incompatible changes

  • The "qemu-system-ppcemb" target has been removed. "qemu-system-ppc" or "qemu-system-ppc64" should be used instead.
  • The "tls", "x509", and "x509verify" options to "-vnc" have been removed. The "tls-creds" option should be used instead to point to a "tls-creds-x509" object created using "-object"
  • The -drive options "cyls", "heads", "secs", "trans", "addr" and "serial" have been removed. The corresponding options of the "-device" parameter have to be used instead now.
  • The "-balloon" option has been removed since it is replaced by "-device virtio-balloon" now.
  • The "-nodefconfig" option has been removed. Use "-no-user-config" instead.
  • The "-startdate", "-localtime" and "-rtc-td-hack" options have been removed. Use the corresponding parameters of "-rtc" instead.
  • The "-tftp", "-bootp", "-redir" and "-smb" options have been removed. Use the corresponding parameters of "-nic" or "-netdev" instead.
  • The "ssi-sd" device cannot be created anymore with "-device". This could be changed again in the future.
  • x86 machines cannot be live-migrated if nested Intel virtualization is enabled. The next version of QEMU will be able to do live migration when nested virtualization is enabled, if supported by the kernel.

New deprecated options and features

  • The '-machine enforce-config-section' parameter is replaced by the '-global migration.send-configuration' option.
  • The 'name' parameter of the '-net' option is a synonym for the 'id' parameter, which should now be used instead.
  • The 'hub_id name' parameter tuple of the 'hostfwd_add' and 'hostfwd_remove' HMP commands has been replaced by 'netdev_id'.
  • The PowerPC target 'prep' machine type should be replaced by the '40p' machine type.
  • Parsing of key,value pair filenames for the RBD block device
  • Incorrect CPU topologies specified by -smp socket,core,thread options that are describing number of VCPUs not equal to 'maxcpus'

Consult the "Deprecated Features" appendix for the full list of historically deprecated features/options.

Alpha

68k

Arm

  • New microbit machine model (initially the only supported device is the UART; more complete device support is planned for the next release)
  • Support for the ARMv6M architecture and the Cortex-M0 CPU
  • New virtual Xilinx Versal machine model: "xlnx-versal-virt"
  • implement some missing hypervisor trap bits in HCR register
  • New CPU model: Cortex-A72
  • Implement emulation of ARMv8M hardware stack limit checking
  • Support Scalable Vector Extension in system emulation mode
  • Implement some devices previously missing from mps2-an505 board
  • raspi: Support virtual framebuffer/viewport in display device
  • Add model of Freescale i.MX6 UltraLite 14x14 EVK Board
  • Support execution from small (<1K) MPU regions for M-profile
  • GICv2: implement the virtualization extensions
  • Emulation of AArch32 virtualization ("Hyp mode") is now supported and enabled on the Cortex-A7 and Cortex-A15

HPPA

Microblaze

MIPS

  • Initial support for nanoMIPS32 ISA system emulation.
  • Initial support for MXU ASE emulation.

Nios2

OpenRISC

PowerPC

  • prep: Deprecate QEMU PReP machine in favour of the 40p machine
  • 40p: switch firmware from Open HackWare to OpenBIOS
  • 40p: fix IRQ routing to enable the Linux sandalfoot zImage to boot
  • Mac Old World/New World: add support for booting from virtio-blk-pci devices (QEMU/OpenBIOS)

RISC-V

s390

  • support for vfio-ap (s390 crypto devices)
    • KVM host kernel needs to be 4.20+
  • remove deprecated 's390-squash-mcss' option
  • add 'max' cpu model

KVM

  • add support for etoken facility
  • add support for huge page backing

TCG

  • add support for instruction flags and AFP registers

SH

SPARC

  • sun4u: add support for boot from virtio-blk-pci block devices (QEMU/OpenBIOS)

TileGX

Tricore

x86

  • Multi-threaded TCG is now supported.
  • Documented recommendations for choosing CPU models to ensure good performance and security of x86 guests.
  • New CPU models IceLake-Server and IceLake-Client.
  • Add CPU flag stibp(Single Thread Indirect Branch Predictors)

KVM

  • Support for Hyper-V enlightened VMCS.

HVF

  • Instruction emulation has been improved.

Xtensa

  • Fix gdbstub in system and linux-user modes.
  • Add support for reading from CharDev console for semihosting.

Device emulation and assignment

ACPI

Audio

Block devices

Graphics

  • stdvga and bochs-display devices can expose EDID information to the guest. The new xres and yres properties of stdvga are exposed in the EDID information.

Input devices

IOMMU

  • Support for AMD IOMMU interrupt remapping and guest virtual APIC mode.

IPMI

Network devices

NVDIMM

PCI/PCIe

SCSI

SMBIOS

TPM

USB

VFIO

virtio

Xen

fw_cfg

9pfs

Audio

Character devices

  • pty serial device is available on macOS.

Crypto subsystem

  • The XTS cipher mode performance has been approximately doubled

GUI

  • The GTK+ interface can choose a "zoom to fit" mode from the command line, via "-display gtk,zoom-to-fit=[on|off]".

Host support

Memory backends

Monitor

  • New commands "sync-profile" and "info sync-profile" enable profiling of mutex contention and condvar waiting. Profiling can also be enabled with the -enable-sync-profile option on the command line.

Migration

Network

Block devices and tools

  • The "qemu-img convert" command handling of secrets has been fixed, allowing creation of LUKS encrypted target files.
  • Fixes in dirty bitmap handling and NBD exports to enable a demonstration of proposed libvirt virDomainBackupBegin() API for driving incremental backups.

Tracing

Miscellaneous

User-mode emulation

  • Improvements to netlink emulation.
  • Support for usbfs ioctls.
  • xtensa-linux-user support the bFLT format.

TCG

  • A long-standing limitation on TCG that prevented it from being able to execute from anything other than plain RAM or ROM has been lifted. This means that the error "qemu: fatal: Trying to execute code outside RAM or ROM" will no longer occur. Note that in the vast majority of cases this error was the result of a guest bug or user misconfiguration -- in this situation QEMU will now correctly emulate a guest that has run off into nowhere, so instead you will see "guest has hung, producing no output".

Guest agent

  • guest-get-fsinfo can return disk serial numbers and, on Linux, device paths.

Build Information

Build Dependencies

  • Support for the GTK2 display frontend has been removed. GTK3 should be used instead
  • The minimum Python version is now 2.7. The next release of QEMU should remove Python 2.x support.
  • The minimum GTK3 version is now 3.14.0
  • The minimum GNUTLS version is now 3.1.18
  • The minimum libgcrypt version is now 1.5.0
  • The minimum nettle version is now 2.7.1
  • The minimum libseccomp version is now 2.2.0.
  • libudev is now an optional dependency for qemu-ga.

Known issues