ChangeLog/2.12
Warning: unsupported host systems
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:
- GNU/kFreeBSD
- DragonFly BSD
- Solaris
- Haiku
System emulation
Incompatible changes
- The deprecated CLI options "-no-kvm-pit" and "-drive boot=on|off" have been removed (they only emitted a warning since QEMU 1.3.0).
- The deprecated CLI option "-net channel" has been removed. You can use "-netdev user,guestfwd=..." instead.
- The deprecated CLI option "-hdachs" has been removed. You can specify the disk geometry e.g. via -device ide-hd,cyls=c,heads=h,secs=s instead.
- The HMP commands "usb_add" and "usb_del" have been removed. Use "device_add" and "device_del" as replacement instead.
- The deprecated "spapr-pci-vfio-host-bridge" device has been removed (from qemu-system-ppc64). It is not needed for vfio since QEMU v2.6.0 anymore.
Deprecated options and features
- qemu-system-ppcemb is deprecated. Use qemu-system-ppc 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 "-nodefconfig" option is now deprecated. Use "-no-user-config" instead.
- The "-s390-squash-mcss" parameter for the s390-ccw-virtio machine is now deprecated. It has been made obsolete by allowing to put any device into any channel subsystem image (unrestricted cssids).
- The parameter "handle" of the "-fsdev" and "-virtfs" options is now depecrated. Use "local" instead.
- The qmp command "query-cpus" is now deprecated. Use the new "query-cpus-fast" qmp command instead, which does not interrupt all running vCPUs.
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)
Alpha
68k
ARM
Microblaze
MIPS
Nios2
OpenRISC
PowerPC
pSeries
s390
- unrestrict cssids: any device can now live in any channel subsystem image (no more virtual/non-virtual restrictions)
- this obsoletes the -s390-squash-mcss machine option
- pci: refactor and improve code, including handling of subregions
- virtio-pci devices that use MSI-X can now be used on s390x
- Support for sclp-based memory hotplug has been removed. It was incompatible with memory hotplug semantics on any other architecture, and has never worked correctly with regard to migration. You can still specify a 'maxmem=' parameter on the command line, but no standby memory will be available to the guest. This feature may be reintroduced with a s390x-specific interface in future releases.
- support for boot menu via the s390-ccw bios
- expose s390x guest crash information
TCG
- Rework of interrupt handling
- Implementation of missing instructions: SCKPF, STCRW, SAL, SCHM,
- Change qemu cpu model to a stripped down z12
- Can now boot recent Linux distributions (Fedora 26/27, Ubuntu 18.04,...)
- SMP support is now considered non-experimental
- PCI can now be used in tcg as well (add 'zpci=on' to the cpu model)
KVM
- allow for systems larger than 7.999TB
SH
SPARC
- Split sun4u APB device into separate Sabre, Simba and IOMMU devices and wire up using QOM/qdev instead of legacy init functions
- Add trace-events support for sun4u Sabre, IOMMU, and ebus devices (plus shared sparc64 functions)
- Add sun4u power device (including SUNW,power-off CIF service support)
- Add "power-off" command to OpenBIOS for sun4m and sun4u
- Fix leon3 irqmp software ACK
- Fix sparc_cpu_get_phys_page_debug() accesses to IO addresses
TileGX
Tricore
- Added variant instructions of JEQ and JNE
- Added 64 bit MOV instruction
- Added CORE_ID register
x86
KVM
Xen
Xtensa
Device emulation and assignment
ACPI
Audio
Block devices
Graphics
Input devices
IPMI
Network devices
PCI/PCIe
SCSI
TPM
USB
VFIO
virtio
Xen
fw_cfg
9pfs
- No longer send spurious EINTR back to the guest on request cancellation (ie, when I/O was interrupted by a signal in the guest)
Character devices
Crypto subsystem
GUI
Host support
Monitor
- A new qmp command, "query-cpus-fast", has been introduced to obtain information about vCPUs without the need to interrupt running vCPUs. In turn, "query-cpus" has been deprecated.
- The "info cpus" hmp command has been switched to use "query-cpus-fast" as a backend.
- The QMP monitor now advertises a new "oob" capability on initial connection; if the client requests this capability during "qmp_capabilities", then the client can request that certain QMP commands be processed out-of-band (where a reply may occur prior to a longer-running previous in-band command).
Migration
Network
Block devices and tools
- Host NVMe controllers can be directly driven by QEMU via VFIO, with the new nvme:// protocol.
- The QEMU NBD implementation (both as server and as client) has learned support for more efficient reads of sparse files (via structured reads), and for querying block status to learn which portions of an NBD export read as zeroes (via NBD_CMD_BLOCK_STATUS on the base:allocation namespace).
User-mode emulation
TCG
- Generic Vectors Support - a new extension to the TCG register types for better handling of SIMD registers
Guest agent
Build Information
GIT submodules
Build Dependencies
- gtk2 support is deprecated, gtk3 should be used instead.
Known issues
- see Planning/2.12