ChangeLog/3.1
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.
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
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
- Documented recommendations for choosing CPU models to ensure good performance and security of x86 guests.
Xtensa
Device emulation and assignment
ACPI
Audio
Block devices
Graphics
Input devices
IPMI
Network devices
NVDIMM
PCI/PCIe
SCSI
SMBIOS
TPM
USB
VFIO
virtio
Xen
fw_cfg
9pfs
Audio
Character devices
Crypto subsystem
- The XTS cipher mode performance has been approximately doubled
GUI
Host support
Memory backends
Monitor
Migration
Network
Block devices and tools
- The "qemu-img convert" command handling of secrets has been fixed, allowing creation of LUKS encrypted target files.
Tracing
Miscellaneous
User-mode emulation
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
Build Information
Build Dependencies
- Support for the GTK2 display frontend has been removed. GTK3 should be used instead
- 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
Known issues
- see Planning/3.1