- 1 Warning: unsupported host systems
- 2 System emulation
- 2.1 Incompatible changes
- 2.2 Deprecated options
- 2.3 Future incompatible changes
- 2.4 Alpha
- 2.5 68k
- 2.6 ARM
- 2.7 Microblaze
- 2.8 MIPS
- 2.9 Nios2
- 2.10 OpenRISC
- 2.11 PowerPC
- 2.12 s390
- 2.13 SH
- 2.14 SPARC
- 2.15 TileGX
- 2.16 Tricore
- 2.17 x86
- 2.18 Xtensa
- 2.19 Device emulation and assignment
- 2.20 Character devices
- 2.21 Crypto subsystem
- 2.22 GUI
- 2.23 Host support
- 2.24 Monitor
- 2.25 Migration
- 2.26 Network
- 2.27 Block devices and tools
- 3 User-mode emulation
- 4 TCG
- 5 Guest agent
- 6 Build Information
- 7 Known issues
Warning: unsupported host systems
- Support for AIX has been removed.
- Support for the ia64 (Itanium) host CPU architecture has been removed.
Unsupported host setups are CPU and operating systems which we do not have access to and are thus unable to test. They will continue to work in this release (though configure will warn you about the unsupported status), but in a future QEMU release we may drop support for those hosts unless somebody volunteers to help us with maintaining them (and can provide build/CI machines).
This affects the OSes:
- DragonFly BSD
- OpenBSD (we have a build system for OpenBSD but would still be interested in talking to people who want to help us with supporting and improving QEMU on this OS)
- Improved memory usage and startup time for large number of devices.
- The sun4u changes may require changes to the QEMU command line. For more information read the Documentation/Platforms/SPARC wiki page (section Changes to sun4u machine from 2.11 onwards)
- Invalid scsi-disk block size configurations, with the logical block size smaller than the physical block size, are rejected.
- The legacy PCI assignment device for KVM, "pci-assign", was removed. Support for the device was deprecated in Linux in 2015 and removed in Linux 4.12. Use "vfio-pci" instead.
- The command-line option "-hdachs" is now deprecated. Use the geometry options of "-device" instead.
- The command-line option "-usbdevice" is now deprecated, use "-device" instead.
- Using "-net dump" for capturing network traffic is now deprecated, use "-object filter-dump" with "-netdev" instead.
- The parameters "serial", "trans", "secs", "heads", "cyls" and "addr" of the "-drive" option are now deprecated. Use the corresponding options of "-device" instead.
- The monitor commands "usb_add" and "usb_del" are now deprecated, use "device_add" and "device_del" instead.
- The monitor commands "host_net_add" and "host_net_remove" are now deprecated. Use "netdev_add" and "netdev_del" instead.
- The "-nodefconfig" option is now deprecated. Use "-no-user-config" instead.
Consult the "Deprecated Features" appendix for the full list of historically deprecated features/options.
Future incompatible changes
- Three options are using different names on the command line and in configuration file. In particular:
- The "acpi" configuration file section matches command-line option "acpitable";
- The "boot-opts" configuration file section matches command-line option "boot";
- The "smp-opts" configuration file section matches command-line option "smp".
- -readconfig will standardize on the name for the command line option.
- Behavior of automatic calculation of SMP topology when some SMP topology options for -smp are omitted (sockets, cores, threads) will change in the future. If guest ABI needs to be preserved on upgrades while using the SMP topology options, users should either set set all options explicitly (sockets, cores, threads), or omit all of them.
- Devices "allwinner-a10", "pc87312", "ssi-sd" will be configured with explicit properties instead of implicitly. This is unlikely to affect users.
- For x86, specifying a CPUID feature with both "+feature/-feature" and "feature=on/off" will cause a warning. The current behavior for this combination ("+feature/-feature" wins over "feature=on/off") will be changed so that "+feature" and "-feature" will be synonyms for "feature=on" and "feature=off" respectively).
- The read-only block drivers "bochs", "cloop" and "dmg" as well as "rbd" and "vvfat" in certain read-only configurations will no longer enable read-only mode automatically. It will be necessary to specify "read-only=on" explicitly on the command line and in QMP commands for the setup to keep working; the default "read-only=off" setting will result in an error.
- On s390x, using KVM with a Linux host kernel version < 3.15 has been broken since QEMU version 2.10. This will not be fixed unless a need is communicated (otherwise the code will be removed in the near future, so that you need at least Linux kernel version 3.15 on the host to run KVM on System z)
- Various bug fixes in M profile emulation
- KVM allows using the PMU even with userspace irqchip
- QEMU can generate aborts on memory transaction failures (though this is disabled for most existing board models)
- Support for the Smartfusion2 board
- The xlnx-ep108 machine type is deprecated, and the (identical) xlnx-zcu102 machine type can be used instead
- The generic PCIe host bridge, used by the "virt" machine type, now supports PCI INTx routing
- AArch64 CPU EL2 emulation should now be good enough to run Xen as a guest
- Experimental SMP support
- Several fixes to Mac machine types
- Preliminary work on the Sam460 board
- KVM: support for guest SMT modes
- Several fixes for hotplug logic
- QEMU supports the new --s390-pgste linker option, so that the global vm.allocate_pgste sysctl is not needed anymore when using KVM
- diag288 watchdog support in TCG
- It is now possible to build s390 QEMU without CONFIG_PCI (well, nearly)
- support for virtio-input-ccw and virtio-gpu-ccw
- device_add now works for hotplugging s390x cpus
- netboot sets the DHCP client architecture id to 0x001f (s390 Basic)
- Experimental SMP support under TCG
- support for IDA (indirect addressing) for ccws (base css, virtio-ccw, and 3270)
- Support for extended TOD clock
- We noticed that QEMU is broken since 2.10 with Linux kernels < v3.15 and that nobody complained. We'll not fix but rather clean up based on this new minimum kernel level version if nobody speaks up.
- Rework sun4m DMA code to use QEMU's in-built IOMMU/DMA APIs rather than use custom sun4m code
- Implement sunhme (Happy Meal Ethernet) NIC and use it as the default NIC for sun4u
- Update sun4u model to incorporate Simba PCI bridges into PCI topology like a real Ultra 5
- KVM can advertise Hyper-V frequency MSRs when the TSC frequency is stable and known (either through the tsc_khz option, or by enabling the "invtsc" CPUID feature)
- Support for over 64 VCPUs in Window guests that have Hyper-V enlightenments enabled
Device emulation and assignment
- Support for vmcoreinfo device to store dump details.
- IDE and SCSI devices can report the disk rotation rate
- QXL adds support for chunked cursors.
- virtio-input is now able to REL_WHEEL events.
- The ps2 device now sends correct scancode sequences for Alt+Print, Shift/Ctrl+Print, Pause and Ctrl+Pause in all code sets
- Support for generic PCIe to PCI bridge device pcie-pci-bridge, which supports SHPC and can replace the i82801b11 DMI to PCI bridge.
- PCI bridges can pass information to the firmware regarding reservation of bus numbers, IO space and memory.
- The scsi-block device supports the rerror and werror options.
- Persistent reservation helper: this lets virtual machines send persistent reservations without using CAP_SYS_RAWIO. The helper, which relies on Unix permissions and SCM_RIGHTS to restrict access to raw SCSI device, also supports multipath devices in order to send persistent reservations to all paths.
- Support for TPM emulator
- Experimental support for NVIDIA GPUDirect Cliques
- Some minor bug fixes
- QEMU uses keycodemapdb as the source for mappings between the various scancode, keycode and keysym definitions.
- The VNC websockets server HTTP request validation has many bugs fixed which should improve client compatibility.
- seccomp is enabled on s390x
- "info numa" provides information on hotplugged memory
- New commands "query-memory-size-summary" (QMP) and "info memory_size_summary" (HMP).
- New command "watchdog-set-action" (QMP).
- New option -d to "info mtree" (HMP) to debug the memory API's dispatch tree.
- New capability pause-before-switchover (...)
Block devices and tools
- The NBD driver supports the structured reply extension.
- New qemu-block-drivers(7) man page
- The performance of the integrated LUKS block driver has been improved.
- Improved code generation through constant pools
- More efficient compilation for SMP guests
- When building QEMU directly from a GIT checkout, 'make' will attempt to run 'git' to checkout a number of GIT submodules, which may have implications for some development environment setups.
- Optional support for the Capstone disassembler library. Capstone can be compiled from the copy distributed in the QEMU tarballs (or from the submodule when building from git), or the system copy can be used instead.
- Pixman is not anymore available as a submodule and has thus become a hard dependency of QEMU system emulation.
- see Planning/2.11
- The u-boot source (corresponding to the firmware file pc-bios/u-boot.e500) contains files whose name only differs in letter case. To avoid path conflict problems when unpacking on a case-insensitive filesystem, the u-boot source is included in a roms/u-boot.tar.bz2 file.