ChangeLog/2.9: Difference between revisions
No edit summary |
|||
Line 134: | Line 134: | ||
* record/replay currently broken despite single-thread fallback (icount issues seem fixed for now) | * record/replay currently broken despite single-thread fallback (icount issues seem fixed for now) | ||
Revision as of 16:17, 27 March 2017
System emulation
Incompatible changes
- Improvements to "-drive":
- "-drive"'s if option defaults to "none" on machines that do not have an onboard IDE or SCSI controller.
- "-drive if=scsi" does not work anymore with PC machine types, as it created an obsolete SCSI controller model. QEMU supports better controllers (megasas, mptsas, virtio-scsi) but which to use depends on the guest you are using.
- "Orphan" -drive options, where an if option is not supported by the emulated machine (e.g. "if=mtd" on x86) is now a fatal error. It had been triggering a warning since version 2.2.
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.
- 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).
Alpha
- MTTCG is enabled by default for Alpha guests running on x86_64 host
68k
- Support for many 680x0 opcodes.
- The "dummy" machine has been removed. You can use the "none" machine as plain instruction set simulator now instead.
ARM
- MTTCG is enabled by default for ARM guests running on x86_64 hosts
- Support for the hardware RNG, BCM2835 SD host controller and GPIO controller on the Raspberry Pi board
MIPS
- New MIPS Boston board (-M boston) on MIPS64EL.
Nios2
- New target, with support for Nios-II R1, emulating the 10M50 development kit with the Nios2 GHRD loaded in the FPGA.
OpenRISC
- Many fixes and many instructions added.
PowerPC
- Lots of POWER9 instructions are implemented for TCG.
- New "40p" machine type, essentially a cleaned up version of the old "-M prep".
- Under KVM, the guest timebase stops when the guest is stopped.
pSeries
- Support for the H_SIGNAL_SYS_RESET hypercall
s390
- Multiple bus support for zPCI.
- Bump maximum numbers of virtqueues for virtio-ccw to 1024 (same as other transports).
- Enable virtio-crypto via virtio-ccw.
- Support for network boot, see http://wiki.qemu-project.org/Features/S390xNetworkBoot
SH
SPARC
- Support for Niagara has been rewritten; "-M niagara" has replaced the old "-M Niagara" (with uppercase N) machine type.
TileGX
Tricore
- Support for more instructions (UPDFL, more JNE/MOV variants, MADD.F, MSUB.F, FTOUZ).
x86
- TCG supports 5-level paging.
- The q35 machine type offers SMI feature negotiation to interested guest firmware.
- Intel IOMMU emulation can now report the caching mode capability to the guest through the "caching-mode=on" property. This is disabled by default.
- FIXME: query-cpu-model-expansion?
KVM
- When KVM is in use, the VMware-specific CPUID leaf for the TSC frequency can be passed to guests if the TSC frequency of the guest is stable. This happens with either "-cpu ...,invtsc" or "-cpu ...,tsc-freq=HZ"
- When Hyper-V crash reporting is active, QEMU will augment GUEST_PANICKED events with the bugcheck code and arguments
- When running on Haswell processors that report TSX to be present, but have a broken TSX implementation, QEMU will warn (or fail to start with "-cpu enforce") when requesting the TSX CPUID feature.
Xen
- Support for unplugging NVMe disks at startup
Xtensa
- Support for -icount.
Device emulation and assignment
ACPI
- The QEMU linker/loader command set has been extended with WRITE_POINTER, which lets guest firmware pass the address of firmware-allocated areas back to QEMU.
- QEMU provies ATSR information in the DMAR table. ATSR is required for software that wants to enable ATS on endpoint devices behind a PCIe Root Port.
- QEMU provides an VMGENID
Block devices
- I/O threads (supported by virtio-blk and experimentally by virtio-scsi) will poll for I/O submission and completion for a limited time after they have been woken up. This improves performance on some I/O-heavy testcases but 10-20%. Polling settings are also included in query-iothreads output.
- -blockdev?
Network devices
- virtio-net devices can pass the MTU to the guest.
SCSI
PCI/PCIe
- New device "pcie-root-port" provides a generic PCIe root port.
- New machine types have SHPC disabled on PCI-to-PCI bridges, and only use ACPI for hotplug support. This makes slot 0 usable.
USB
- Many XHCI emulation bugfixes.
VFIO
virtio
- virtio-crypto devices support hotplug.
- virtio-pci devices enable Address Translation Service (ATS). This is needed to support vhost for devices sitting behind an IOMMU.
Xen
fw_cfg
The DMA interface to fw_cfg now supports writeable blobs.
The fw_cfg_io and fw_cfg_mem devices now have more slots for files; the FW_CFG_FILE_SLOTS constant has been replaced with the (internal only) x-file-slots property. The property can be further raised in future machine types if absolutely necessary.
9pfs
- No more vulnerable to symlink attacks (CVE-2016-9602).
- I/O throttle support similar to blockdev (command line only at the moment, QMP will be added later).
Character devices
- A new backend "wctablet" provides emulation for Wacom Penpartner serial tablets.
Crypto subsystem
- The crypto subsystem now includes support for HMAC algorithms, which are used in virtio-crypto. (?)
GUI
- "-display vnc" can specify multiple VNC listen addresses.
- "-display vnc" can listen on all resolved addresses for a hostname, including for example IPv4 and IPv6 addresses.
Monitor
- QEMU now includes Texinfo documentation for all QMP commands and events.
- The guest memory map can be dumped in flat format (i.e. with all subregions resolved) with "info mtree -f".
Migration
- A new option --only-migratable will prevent adding devices that cannot be live-migrated.
- Postcopy migration can now be used with hugepages backed by hugetlbfs. This requires Linux kernel 4.11. See docs/migration.txt for detail.
Network
- slirp's TFTP server supports dynamic block sizes.
Block devices and tools
- the qemu-img convert command now works asynchronously which up to doubles performance if network based storage like iSCSI, NFS or RBD is used.
User-mode emulation
- Support for hppa-linux emulation.
- Support for nios2-linux emulation.
Removed target support
New functionality
- Signal handling support added for x86-64 linux-user
TCG
- Improvements to MIPS code generation.
- TCG can use host opcodes for "extract", "count leading/trailing zeros", "population count"
Guest agent
- qemu-ga now supports systemd socket activation
Build Information
Build dependencies
- QEMU now requires a minimum dtc version of 1.4.2.
Known issues
- record/replay currently broken despite single-thread fallback (icount issues seem fixed for now)