ChangeLog/2.7: Difference between revisions
(updated as of 190c93c98283e75e1a9e01babd1ec14624cb6204) |
|||
Line 2: | Line 2: | ||
=== Incompatible changes === | === Incompatible changes === | ||
* SPI flash devices "160s33b", "320s33b", "640s33b", "at25df041a", "at25df321a", "at25df641", "at25fs010", "at25fs040", "at26df081a", "at26df161a", "at26df321", "at26f004", "at45db081d", "en25f32", "en25p32", "en25p64", "en25q32b", "en25q64", "gd25q32", "gd25q64", "m25p05", "m25p10", "m25p128", "m25p16", "m25p20", "m25p32", "m25p40", "m25p64", "m25p80", "m25pe16", "m25pe20", "m25pe80", "m25px32", "m25px32-s0", "m25px32-s1", "m25px64", "m45pe10", "m45pe16", "m45pe80", "mx25l12805d", "mx25l12855e", "mx25l1606e", "mx25l2005a", "mx25l25635e", "mx25l25655e", "mx25l3205d", "mx25l4005a", "mx25l6405d", "mx25l8005", "n25q032", "n25q032a11", "n25q032a13", "n25q064", "n25q064a11", "n25q064a13", "n25q128", "n25q128a11", "n25q128a13", "n25q256a11", "n25q256a13", "s25fl016k", "s25fl064k", "s25fl129p0", "s25fl129p1", "s25fl256s0", "s25fl256s1", "s25fl512s", "s25sl004a", "s25sl008a", "s25sl016a", "s25sl032a", "s25sl032p", "s25sl064a", "s25sl064p", "s25sl12800", "s25sl12801", "s70fl01gs", "sst25vf016b", "sst25vf032b", "sst25vf040b", "sst25vf080b", "sst25wf010", "sst25wf020", "sst25wf040", "sst25wf512", "w25q256", "w25q32", "w25q32dw", "w25q64", "w25q80", "w25q80bl", "w25x10", "w25x16", "w25x20", "w25x32", "w25x40", "w25x64", "w25x80" connect to a backend explicitly named by a "drive" property instead of an implicit -drive if=mtd. This only affect devices created explicitly with -device; "-drive if=mtd" still works for SPI flash devices created by boards, so this should affect almost no one. | |||
* Support for the original qcow2 image encryption has been disabled entirely from the system emulators. While QEMU 2.3 attempted to keep it available in system emulators, a bug in the code has actually broken it since 2.4, and no one complained. Supported for the format remains available only in command line tools qemu-img, qemu-io, qemu-nbd to facilitate data liberation. It is recommended to use 'qemu-img convert' to convert qcow2 encrypted images to uncrypted ones. The new LUKS encryption driver can provide a secure replacement, and a future release may integrate luks into qcow2 natively. | * Support for the original qcow2 image encryption has been disabled entirely from the system emulators. While QEMU 2.3 attempted to keep it available in system emulators, a bug in the code has actually broken it since 2.4, and no one complained. Supported for the format remains available only in command line tools qemu-img, qemu-io, qemu-nbd to facilitate data liberation. It is recommended to use 'qemu-img convert' to convert qcow2 encrypted images to uncrypted ones. The new LUKS encryption driver can provide a secure replacement, and a future release may integrate luks into qcow2 natively. | ||
* Autoconverge is not considered experimental anymore; autoconverge-related commands do not have the "x-" prefix anymore. | * Autoconverge is not considered experimental anymore; autoconverge-related commands do not have the "x-" prefix anymore. | ||
* The MIPS64R6-generic CPU model was renamed to I6400. | |||
* On Q35 machines, IOMMU are now enabled with "-device iommu" instead of "-machine iommu=on". | |||
==== Removed host support ==== | |||
* QEMU no longer supports building the linux-user targets on HPPA or m68k host systems | |||
=== Future incompatible changes === | === Future incompatible changes === | ||
Line 15: | Line 20: | ||
* Devices "allwinner-a10", "pc87312", "ssi-sd" will be configured with explicit properties instead of implicitly. This is unlikely to affect users. | * Devices "allwinner-a10", "pc87312", "ssi-sd" will be configured with explicit properties instead of implicitly. This is unlikely to affect users. | ||
* QMP command blockdev-add is still a work in progress. It doesn't support all block drivers, it lacks a matching blockdev-del, and more. It might change incompatibly. | * QMP command blockdev-add is still a work in progress. It doesn't support all block drivers, it lacks a matching blockdev-del, and more. It might change incompatibly. | ||
==== Deprecated target support ==== | |||
* The unicore32-linux-user target is unmaintained and implements a different system call ABI from mainline Linux for this architecture. We plan to drop support for it in QEMU 2.8. | |||
=== ARM === | === ARM === | ||
Line 28: | Line 36: | ||
=== MIPS === | === MIPS === | ||
* Support for 10-bit ASIDs | |||
* The MIPS64R6-generic CPU model was renamed to I6400. | |||
* Initial GIC support | |||
* Support for IEE 754-2008 | |||
=== PowerPC === | === PowerPC === | ||
Line 35: | Line 47: | ||
* Significant performance improvements for the spapr-llan device. | * Significant performance improvements for the spapr-llan device. | ||
* Support for CPU hotplug. | * Support for CPU hotplug. | ||
* Performance improvements for VFIO through dynamic DMA windows. | |||
=== s390 === | === s390 === | ||
Line 51: | Line 64: | ||
=== x86 === | === x86 === | ||
==== KVM ==== | |||
* Support for LMCE (local MCE) virtualization, which will require Linux 4.8. LMCE can be enabled through "-cpu ''model'',lmce" on all CPUs as long as the kernel supports it. | |||
=== Device emulation and assignment === | === Device emulation and assignment === | ||
==== ACPI ==== | ==== ACPI ==== | ||
* NVDIMM devices are now described in the ACPI tables and support labels. | |||
==== Block devices ==== | ==== Block devices ==== | ||
* Removed dataplane blockers? (Fam) | * Removed dataplane blockers? (Fam) | ||
* New -device properties replacing -drive properties? | |||
* virtio-blk now supports multiqueue through a "num-queues" device property. | |||
==== ivshmem ==== | ==== ivshmem ==== | ||
==== Network devices ==== | |||
* New device e1000e for Intel 82574 NIC. | |||
* QEMU now includes iPXE ROMs for vmxnet3 devices. | |||
==== SCSI ==== | ==== SCSI ==== | ||
* scsi-block now passes sense data correctly to the guest, so that it can support for example persistent reservations. | * scsi-block now passes sense data correctly to the guest, so that it can support for example persistent reservations. | ||
* Support for passthrough of SCSI scanner. | |||
==== PCI/PCIe ==== | ==== PCI/PCIe ==== | ||
* On Q35 machines, IOMMU are now enabled with "-device iommu" instead of "-machine iommu=on". | |||
==== USB ==== | ==== USB ==== | ||
* Support for Xen paravirtualized USB | * Support for Xen paravirtualized USB | ||
* usb-bot and usb-uas now support hotplug. | |||
==== VFIO ==== | ==== VFIO ==== | ||
* Support for device assignment of Intel integrated graphics devices. | * Support for device assignment of Intel integrated graphics devices. | ||
* The SR-IOV capability is now hidden to guests when passing through a physical function. | |||
==== virtio ==== | ==== virtio ==== | ||
* Initial reconnect support for vhost-user. | * Initial reconnect support for vhost-user. | ||
* Support for busy polling on vhost-net devices ("-netdev tap,...,poll-us=''n''"). | |||
=== Character devices === | === Character devices === | ||
=== TLS support === | |||
* Support for overriding the TLS property, for example "-object tls-creds-x509,...,priority=NORMAL:-VERS-SSL3.0" disables SSL 3.0. This can be used both to use a non-standard weaker set of prioririties, or to enforce a stronger default for QEMU. The default priority can also be specified through "--tls-priority=''VALUE''" at configure time. | |||
=== GUI === | === GUI === | ||
Line 87: | Line 117: | ||
=== Network === | === Network === | ||
* | * User-mode networking supports DHCPv6, RDNSS, DNS6 and link-local DNS addresses. | ||
* Socket networking in TCP mode can now run over IPv6. UDP and multicast modes do not support IPv6 yet. | |||
=== Block devices and tools === | === Block devices and tools === | ||
* New "bench" command in qemu-img . | * New "bench" command in qemu-img . | ||
* The "write" command in qemu-io grew "-f" and "-z -u" options. | * The "write" command in qemu-io grew "-f" and "-z -u" options. | ||
* TODO: Block job ids? | |||
=== TCG === | === TCG === | ||
* Speed improvements around 20%. | * Speed improvements around 20%. | ||
* Fixes for self-modifying code. | |||
=== Tracing === | === Tracing === | ||
* TODO: dfilter | * TODO: dfilter | ||
* TODO: tracing for qemu-io, qemu-img and qemu-nbd | |||
== User-mode emulation == | == User-mode emulation == | ||
* The long standing issue of linux-user failing to emulate signals and threads properly has been fixed | * The long standing issue of linux-user failing to emulate signals and threads properly has been fixed. QEMU now emulates system call restarting | ||
* fixes to fcntl, fadvise, msgrcv and other syscalls | * fixes to fcntl, fadvise, msgrcv and other syscalls | ||
* added rtnetlink(7) support | * added rtnetlink(7) support | ||
== Build dependencies == | == Build dependencies == |
Revision as of 16:16, 14 July 2016
System emulation
Incompatible changes
- SPI flash devices "160s33b", "320s33b", "640s33b", "at25df041a", "at25df321a", "at25df641", "at25fs010", "at25fs040", "at26df081a", "at26df161a", "at26df321", "at26f004", "at45db081d", "en25f32", "en25p32", "en25p64", "en25q32b", "en25q64", "gd25q32", "gd25q64", "m25p05", "m25p10", "m25p128", "m25p16", "m25p20", "m25p32", "m25p40", "m25p64", "m25p80", "m25pe16", "m25pe20", "m25pe80", "m25px32", "m25px32-s0", "m25px32-s1", "m25px64", "m45pe10", "m45pe16", "m45pe80", "mx25l12805d", "mx25l12855e", "mx25l1606e", "mx25l2005a", "mx25l25635e", "mx25l25655e", "mx25l3205d", "mx25l4005a", "mx25l6405d", "mx25l8005", "n25q032", "n25q032a11", "n25q032a13", "n25q064", "n25q064a11", "n25q064a13", "n25q128", "n25q128a11", "n25q128a13", "n25q256a11", "n25q256a13", "s25fl016k", "s25fl064k", "s25fl129p0", "s25fl129p1", "s25fl256s0", "s25fl256s1", "s25fl512s", "s25sl004a", "s25sl008a", "s25sl016a", "s25sl032a", "s25sl032p", "s25sl064a", "s25sl064p", "s25sl12800", "s25sl12801", "s70fl01gs", "sst25vf016b", "sst25vf032b", "sst25vf040b", "sst25vf080b", "sst25wf010", "sst25wf020", "sst25wf040", "sst25wf512", "w25q256", "w25q32", "w25q32dw", "w25q64", "w25q80", "w25q80bl", "w25x10", "w25x16", "w25x20", "w25x32", "w25x40", "w25x64", "w25x80" connect to a backend explicitly named by a "drive" property instead of an implicit -drive if=mtd. This only affect devices created explicitly with -device; "-drive if=mtd" still works for SPI flash devices created by boards, so this should affect almost no one.
- Support for the original qcow2 image encryption has been disabled entirely from the system emulators. While QEMU 2.3 attempted to keep it available in system emulators, a bug in the code has actually broken it since 2.4, and no one complained. Supported for the format remains available only in command line tools qemu-img, qemu-io, qemu-nbd to facilitate data liberation. It is recommended to use 'qemu-img convert' to convert qcow2 encrypted images to uncrypted ones. The new LUKS encryption driver can provide a secure replacement, and a future release may integrate luks into qcow2 natively.
- Autoconverge is not considered experimental anymore; autoconverge-related commands do not have the "x-" prefix anymore.
- The MIPS64R6-generic CPU model was renamed to I6400.
- On Q35 machines, IOMMU are now enabled with "-device iommu" instead of "-machine iommu=on".
Removed host support
- QEMU no longer supports building the linux-user targets on HPPA or m68k host systems
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.
- QMP command blockdev-add is still a work in progress. It doesn't support all block drivers, it lacks a matching blockdev-del, and more. It might change incompatibly.
Deprecated target support
- The unicore32-linux-user target is unmaintained and implements a different system call ABI from mainline Linux for this architecture. We plan to drop support for it in QEMU 2.8.
ARM
- The "virt" machine type has support for NUMA.
- We now implement an emulated GICv3 interrupt controller, which is supported by the "virt" board and can be enabled with "-machine gic-version=3". Note that many guest OSes do not correctly support a GICv3 without security extensions; if your guest is Linux it must include commit 7c9b973061 "irqchip/gic-v3: Configure all interrupts as non-secure Group-1" or a backport of that patch to one of the stable branches. UEFI and FreeBSD are also known to need similar bug fixes.With a GICv3 the "virt" board now supports TCG (emulated CPU) configurations with more than 8 vCPUs.
- New Xilinx Zynq ZCU102 board (-M xlnx-zcu102).
- Xilinx Zynq boards have experimental support for ARM Security Extensions.
- Xilinx Zynq MP supports DisplayPort (graphics and audio) and DDC (used for EDID info).
- i.MX6?
KVM
- Xilinx Zynq boards support KVM on AArch64 hosts.
MIPS
- Support for 10-bit ASIDs
- The MIPS64R6-generic CPU model was renamed to I6400.
- Initial GIC support
- Support for IEE 754-2008
PowerPC
- Many TCG fixes.
pSeries
- Significant performance improvements for the spapr-llan device.
- Support for CPU hotplug.
- Performance improvements for VFIO through dynamic DMA windows.
s390
- Support for runtime instrumentation
- The IPL firmware can boot from devices in subchannel sets > 0
- Major refactoring and improvements of the s390x-specific PCI code
- Optionally, zPCI specific 'uid' and 'fid' attributes may be provided
- Guest-acknowledged hotunplug (rather than 'surprise removal' only)
- bootindex support for IPL from SCSI devices
SH
SPARC
TileGX
Tricore
x86
KVM
- Support for LMCE (local MCE) virtualization, which will require Linux 4.8. LMCE can be enabled through "-cpu model,lmce" on all CPUs as long as the kernel supports it.
Device emulation and assignment
ACPI
- NVDIMM devices are now described in the ACPI tables and support labels.
Block devices
- Removed dataplane blockers? (Fam)
- New -device properties replacing -drive properties?
- virtio-blk now supports multiqueue through a "num-queues" device property.
ivshmem
Network devices
- New device e1000e for Intel 82574 NIC.
- QEMU now includes iPXE ROMs for vmxnet3 devices.
SCSI
- scsi-block now passes sense data correctly to the guest, so that it can support for example persistent reservations.
- Support for passthrough of SCSI scanner.
PCI/PCIe
- On Q35 machines, IOMMU are now enabled with "-device iommu" instead of "-machine iommu=on".
USB
- Support for Xen paravirtualized USB
- usb-bot and usb-uas now support hotplug.
VFIO
- Support for device assignment of Intel integrated graphics devices.
- The SR-IOV capability is now hidden to guests when passing through a physical function.
virtio
- Initial reconnect support for vhost-user.
- Support for busy polling on vhost-net devices ("-netdev tap,...,poll-us=n").
Character devices
TLS support
- Support for overriding the TLS property, for example "-object tls-creds-x509,...,priority=NORMAL:-VERS-SSL3.0" disables SSL 3.0. This can be used both to use a non-standard weaker set of prioririties, or to enforce a stronger default for QEMU. The default priority can also be specified through "--tls-priority=VALUE" at configure time.
GUI
- A new option "-machine graphics=on|off" lets you disable graphics in the VM like "-nographic" (e.g. OpenBIOS will use the serial port for boot messages) but without an implicit "-display none".
Monitor
Migration
- Autoconverge is not considered experimental anymore. Autoconverge-related commands do not have the "x-" prefix.
- TODO: TLS support
Network
- User-mode networking supports DHCPv6, RDNSS, DNS6 and link-local DNS addresses.
- Socket networking in TCP mode can now run over IPv6. UDP and multicast modes do not support IPv6 yet.
Block devices and tools
- New "bench" command in qemu-img .
- The "write" command in qemu-io grew "-f" and "-z -u" options.
- TODO: Block job ids?
TCG
- Speed improvements around 20%.
- Fixes for self-modifying code.
Tracing
- TODO: dfilter
- TODO: tracing for qemu-io, qemu-img and qemu-nbd
User-mode emulation
- The long standing issue of linux-user failing to emulate signals and threads properly has been fixed. QEMU now emulates system call restarting
- fixes to fcntl, fadvise, msgrcv and other syscalls
- added rtnetlink(7) support
Build dependencies
- The GTK+ user interface now supports VTE 2.91.
- The SDL user interface is now built if SDL2 is the only available version.
Known issues
- Statically linked system emulators crash due to ifunc.