ChangeLog/3.0: Difference between revisions
(11 intermediate revisions by 5 users not shown) | |||
Line 21: | Line 21: | ||
* The default for VFIO's "display" option has been changed from "auto" to "off", because "auto" requires an OpenGL-compatible configuration for vGPUs that require GL support. | * The default for VFIO's "display" option has been changed from "auto" to "off", because "auto" requires an OpenGL-compatible configuration for vGPUs that require GL support. | ||
* The deprecated xlnx-ep108 machine was removed. | * The deprecated xlnx-ep108 machine was removed. | ||
* Some 32-bit guests on the "virt" machine may need "-machine highmem=off" if they are unable to support LPAE and are confused by the PCI ECAM now being above the 4GB mark in the address space | |||
=== | === New deprecated options and features === | ||
* The "arch" output member of the "query-cpus-fast" command is deprecated. Use the "target" output member instead. | * The "arch" output member of the "query-cpus-fast" command is deprecated. Use the "target" output member instead. | ||
Line 30: | Line 31: | ||
* Option "-enable-hax" is deprecated. Use "-accel hax" instead. | * Option "-enable-hax" is deprecated. Use "-accel hax" instead. | ||
* The "arch" memeber in the reply to query-cpus-fast is deprecated, use "target" instead. | * The "arch" memeber in the reply to query-cpus-fast is deprecated, use "target" instead. | ||
* The "file" driver for drives is no longer appropriate for character or host devices and will only accept regular files (S_IFREG). Use host_cdrom or host_device instead. | |||
* The "irq" property of the "spapr-vscsi", "spapr-vlan" and "spapr-vty" devices is deprecated with no replacement. | |||
Consult the [https://qemu.weilnetz.de/doc/qemu-doc.html#Deprecated-features "Deprecated Features"] appendix for the full list of historically deprecated features/options. | Consult the [https://qemu.weilnetz.de/doc/qemu-doc.html#Deprecated-features "Deprecated Features"] appendix for the full list of historically deprecated features/options. | ||
Line 49: | Line 52: | ||
* Fixes for several instructions: subx with memory, flognp1, fcos, fsin, fmod | * Fixes for several instructions: subx with memory, flognp1, fcos, fsin, fmod | ||
=== | === Arm === | ||
* Support for emulating the SMMUv3 (IOMMU). One can be added to the "virt" board with the command line option "-machine iommu=smmuv3" | * Support for emulating the SMMUv3 (IOMMU). One can be added to the "virt" board with the command line option "-machine iommu=smmuv3" | ||
* Support for v8M VLLDM and VLSTM. | * Support for v8M VLLDM and VLSTM. | ||
* Support for ARMv8.1 LSE atomics | |||
* Support for various missing instructions from the v8.2-FP16 state. | * Support for various missing instructions from the v8.2-FP16 state. | ||
* Support for [[Features/ARM/SVE|ARM's Scalable Vector Extensions]] in linux-user mode | |||
* The aspeed machine now includes I2C RTC and EEPROM devices | * The aspeed machine now includes I2C RTC and EEPROM devices | ||
* Support for a new machine witherspoon-bmc | * Support for a new machine witherspoon-bmc | ||
Line 58: | Line 63: | ||
* The virt machine type supports up to 512 CPUs. | * The virt machine type supports up to 512 CPUs. | ||
* The xlnx-zynqmp machine uses a Cortex-R5F CPU rather than a Cortex-R5. | * The xlnx-zynqmp machine uses a Cortex-R5F CPU rather than a Cortex-R5. | ||
=== HPPA === | === HPPA === | ||
Line 85: | Line 91: | ||
* rework TOD handling and fix cpu hotplug | * rework TOD handling and fix cpu hotplug | ||
==== KVM ==== | ==== KVM ==== | ||
* vfio-ccw: add "force-orb-pfch" parameter | * vfio-ccw: add "force-orb-pfch" parameter, to accommodate guests that do not set the "unlimited prefetch" flag in the request block (which is not supported by vfio-ccw), but actually work fine with the current vfio-ccw implementation | ||
==== s390 firmware ==== | ==== s390 firmware ==== | ||
* allow non-sequential entries in boot menu | * allow non-sequential entries in boot menu | ||
Line 116: | Line 121: | ||
==== ACPI ==== | ==== ACPI ==== | ||
==== Audio ==== | ==== Audio ==== | ||
* New timer code? | |||
==== Block devices ==== | ==== Block devices ==== | ||
* Many fixes to AHCI emulation. | * Many fixes to AHCI emulation. | ||
Line 121: | Line 128: | ||
* New device "bochs-display", a PCI framebuffer that is configured via the Bochs DISPI interface (basically -device VGA without legacy VGA emulation, text mode, low memory VRAM, etc.). | * New device "bochs-display", a PCI framebuffer that is configured via the Bochs DISPI interface (basically -device VGA without legacy VGA emulation, text mode, low memory VRAM, etc.). | ||
* New device "ramfb", a simple framebuffer that lives in guest RAM and is configured via fw_cfg. | * New device "ramfb", a simple framebuffer that lives in guest RAM and is configured via fw_cfg. | ||
* Many improvements to the sm501 device. | |||
==== Input devices ==== | ==== Input devices ==== | ||
==== IPMI ==== | ==== IPMI ==== | ||
Line 136: | Line 145: | ||
==== VFIO ==== | ==== VFIO ==== | ||
==== virtio ==== | ==== virtio ==== | ||
* Virtio balloon exposes statistics on hugetlb page allocation and allocation failure counts(guest kernel >= 4.17 is required) | |||
==== Xen ==== | ==== Xen ==== | ||
==== fw_cfg ==== | ==== fw_cfg ==== | ||
Line 193: | Line 204: | ||
* The translation block lock was removed to improve scalability. | * The translation block lock was removed to improve scalability. | ||
== Guest agent == | == Guest agent == | ||
* Support for entering power saving modes (hibernate/suspend/hybrid sleep) via systemctl rather than pmutils. | |||
== Build Information == | == Build Information == |
Latest revision as of 09:55, 28 April 2019
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
- Option "-no-kvm-pit-reinjection" has been removed. Use "-global kvm-pit.lost_tick_policy=discard" instead.
- Option "-no-kvm-irqchip" has been removed. Use "-machine kernel_irqchip=off" instead.
- The "vlan" parameter of the "-net" option has been removed. Use "-netdev" with IDs or the "hubport" netdev instead.
- The deprecated -drive options "geometry", "addr" and "serial" have been removed. Use "-drive if=none" and pass the options to "-device" instead.
- The "xlnx-ep108" machine has been replaced by the "xlnx-zcu102" machine.
- The qemu-img "convert -s snapshot_id_or_name" argument has been removed. Use "convert -l snapshot_param" instead.
- PPC support for explicitly allocated RMAs has been removed (kernel support removed in 2015).
- The default for VFIO's "display" option has been changed from "auto" to "off", because "auto" requires an OpenGL-compatible configuration for vGPUs that require GL support.
- The deprecated xlnx-ep108 machine was removed.
- Some 32-bit guests on the "virt" machine may need "-machine highmem=off" if they are unable to support LPAE and are confused by the PCI ECAM now being above the 4GB mark in the address space
New deprecated options and features
- The "arch" output member of the "query-cpus-fast" command is deprecated. Use the "target" output member instead.
- Option "-virtioconsole" is deprecated, use "-device virtconsole" instead.
- The non-functional "-clock" option will be removed soon.
- The "pc-0.10" and "pc-0.11" machines are now deprecated. Use newer machine types instead.
- Option "-enable-hax" is deprecated. Use "-accel hax" instead.
- The "arch" memeber in the reply to query-cpus-fast is deprecated, use "target" instead.
- The "file" driver for drives is no longer appropriate for character or host devices and will only accept regular files (S_IFREG). Use host_cdrom or host_device instead.
- The "irq" property of the "spapr-vscsi", "spapr-vlan" and "spapr-vty" devices is deprecated with no replacement.
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
- Fixes for several instructions: subx with memory, flognp1, fcos, fsin, fmod
Arm
- Support for emulating the SMMUv3 (IOMMU). One can be added to the "virt" board with the command line option "-machine iommu=smmuv3"
- Support for v8M VLLDM and VLSTM.
- Support for ARMv8.1 LSE atomics
- Support for various missing instructions from the v8.2-FP16 state.
- Support for ARM's Scalable Vector Extensions in linux-user mode
- The aspeed machine now includes I2C RTC and EEPROM devices
- Support for a new machine witherspoon-bmc
- The ECAM region in the virt machine type is now 256MiB big, so that more PCI devices can be added.
- The virt machine type supports up to 512 CPUs.
- The xlnx-zynqmp machine uses a Cortex-R5F CPU rather than a Cortex-R5.
HPPA
Microblaze
- Translation bug fixes.
- Support for 64-bit address sizes.
MIPS
Nios2
OpenRISC
PowerPC
- Add PMU support for mac99 machine selectable using via machine option (via=pmu or via=pmu-adb)
- Many improvements for the Uninorth PCI host bridge for Mac machine types
- POWER9 hash MMU support?
- Many improvements for Sam460ex, 40p (PReP) and Macintosh machines.
pSeries
RISC-V
- Improvements for privileged ISA emulation.
s390
- add cpu model for the z14 Model ZR1 (the "small" z14)
- add bpb/ppa15 (spectre mitigation) features to default cpu model for z196 and later
- configuration of consoles via -serial is now supported
- s390-netboot now supports indirect loading via .INS files
TCG
- rework TOD handling and fix cpu hotplug
KVM
- vfio-ccw: add "force-orb-pfch" parameter, to accommodate guests that do not set the "unlimited prefetch" flag in the request block (which is not supported by vfio-ccw), but actually work fine with the current vfio-ccw implementation
s390 firmware
- allow non-sequential entries in boot menu
- add support for indirect loading via .INS files in s390-netboot
- add support for pxelinux.cfg-style network booting
SH
SPARC
- Add -icount support for sun4u
TileGX
Tricore
x86
- Formatting of CPU models and flags reported with '-cpu help' has improved readability
- New CPU model KnightsMill
- Support for the AMD TOPOEXT extension, to provide cache information for EPYC family processors.
- SVM emulation supports NMI interception and NPT.
KVM
- Support for Hyper-V reenlightenment MSRs with the 'hv-reenlightenment' CPU feature flag
- The 'ssbd', 'virt-ssbd', 'amd-ssbd' and 'amd-no-ssb' CPU feature flags are added in relation to the "Speculative Store Bypass" hardware vulnerability (CVE-2018-3639)
Xen
Xtensa
Device emulation and assignment
ACPI
Audio
- New timer code?
Block devices
- Many fixes to AHCI emulation.
Graphics
- New device "bochs-display", a PCI framebuffer that is configured via the Bochs DISPI interface (basically -device VGA without legacy VGA emulation, text mode, low memory VRAM, etc.).
- New device "ramfb", a simple framebuffer that lives in guest RAM and is configured via fw_cfg.
- Many improvements to the sm501 device.
Input devices
IPMI
Network devices
NVDIMM
PCI/PCIe
SCSI
- The SCSI subsystem can now be left out.
- QEMU can modify the VPD block limits page of a passthrough device, so that it also takes into account the host controller's limits.
SMBIOS
TPM
- The TPM emulator and the TPM TIS device now support migration
USB
VFIO
virtio
- Virtio balloon exposes statistics on hugetlb page allocation and allocation failure counts(guest kernel >= 4.17 is required)
Xen
fw_cfg
9pfs
Audio
Character devices
- Unix sockets are deleted after close.
Crypto subsystem
- Support for TLS Pre-Shared Keys using "--object tls-creds-psk". The pre-shared key file can be created with "psktool -u qemu -p /path/to/file.psk".
GUI
- The F10 menubar key is now disabled in the GTK+ front-end.
- The SDL front-end supports OpenGL ES.
Host support
Memory backends
Monitor
- A new set of monitor commands "job-*" supersedes the older "block-job-*", and will be generalized in the future to jobs that do not involve block devices.
- Support for a new experimental virtual machine run state, "preconfig". When QEMU is started with the "-preconfig" command line option, only a limited number of configuration and query commands can be invoked from the monitor. This is required to avoid backwards incompatibility and allow more flexibility in configuration, because some configuration commands do not make sense on a fully initialized virtual machine. Preconfiguration mode is left with the new "x-exit-preconfig" command.
Migration
- Postcopy: The new 'max-postcopy-bandwidth' parameter can be used to limit the bandwidth during the postcopy phase of a migrate; it was previously unlimited.
- Support for recovery of postcopy migration after a network failure, using the "migrate_recover" monitor command (migrate-recover on QMP).
- New command "migrate_pause" (migrate-pause on QMP)
Network
- SLIRP now disables Nagle algorithm, thus improving latency. The guest is going to use Nagle algorithm when useful.
Block devices and tools
- Support for "active" mirror using the new option "copy-mode" to the "drive-mirror" monitor option.
- Support for copy offloading in "qemu-img convert", with the "-C" option. Note that copy offloading disables detection of sparse images.
- qemu-io now exits with an error when a command failed.
- New experimental monitor commands x-block-dirty-bitmap-merge, x-block-dirty-bitmap-enable, x-block-dirty-bitmap-disable
- The current state (connected/disconnected) of a persistent reservation manager is reported via QMP events and can be queried with the "query-pr-managers" QMP command.
Tracing
Miscellaneous
- Command line option values greater than 1024 bytes in length are no longer silently truncated.
User-mode emulation
- make docker-binfmt-image-debian-NAME can be used to build user-mode images. For example:
make docker-binfmt-image-debian-ubuntu-bionic-arm64 \ DEB_ARCH=arm64 DEB_TYPE=bionic DEB_URL=http://ports.ubuntu.com \ EXECUTABLE=./aarch64-linux-user/qemu-aarch64 V=1
- PPC64 host fixes (page size, mmap alignment, interrupted syscall, F_*LK64)
- Fixes for several syscalls: mmap with 0 length, setsockopt, netlink
- new syscalls: swapcontext (ppc), get_tls (ARM)
- Most errors are now affected by -d rather than just dumped to stderr
- qemu-binfmt-conf.sh: new options to use persistent (F) flag, ignore the OS/ABI field
- add support of FDPIC for ARM
- Support for ARM's Scalable Vector Extensions
TCG
- New option "-d fpu" to log FPU state.
- New build target "check-tcg" will run cross-architecture tests
- The translation block lock was removed to improve scalability.
Guest agent
- Support for entering power saving modes (hibernate/suspend/hybrid sleep) via systemctl rather than pmutils.
Build Information
GIT submodules
Build Dependencies
- The minimum acceptable version of GLib is increased from 2.22 to 2.40
- RISC-V emulation requires libfdt.
- A set of rules declaring intentions for supported build target operating systems has been defined https://qemu.weilnetz.de/doc/qemu-doc.html#Supported-build-platforms
- QEMU's build process is now compatible with Python 3. Support for Python 2.6 and earlier however has been dropped.
Known issues
- see Planning/3.0