ChangeLog/2.10: Difference between revisions

From QEMU
(updated as of 8e3cf49c47064da19f4bfb1c5bf16e6e613f1bfa)
 
(updated as of 36f87b4513373b3cd79c87c9197d17face95d4ac)
Line 31: Line 31:
=== Alpha ===
=== Alpha ===
=== 68k ===
=== 68k ===
* Support for 80-bit FPUs.
=== ARM ===
=== ARM ===
* M profile exception return is implemented correctly
* M profile exception return is implemented correctly
* M profile emulation now supports the MPU
* M profile emulation now supports the MPU
* The ASPEED SoC includes an emulated FTGMAC100 network card.
* Exynos421 supports SDHCI and system poweroff
* The ASPEED SoC includes an emulated FTGMAC100 network card and a temperature sensor device.
* Support for ITS save/restore
* zynq supports running for SPIPS flash
=== MIPS ===
=== MIPS ===
=== Nios2 ===
=== Nios2 ===
Line 46: Line 50:
* Partial support for POWER9 guests with TCG.
* Partial support for POWER9 guests with TCG.
* The powernv machine includes a more complete device tree.
* The powernv machine includes a more complete device tree.
* OpenPIC timers now work
==== pSeries ====
==== pSeries ====
=== s390 ===
=== s390 ===
Line 54: Line 59:
* TCG can use host atomic operations for s390 "LOAD AND x" and "COMPARE SWAP" operations.
* TCG can use host atomic operations for s390 "LOAD AND x" and "COMPARE SWAP" operations.
* TCG implements EXECUTE completely
* TCG implements EXECUTE completely
* TCG supports LOAD PROGRAM PARAMETER, extended facilities and several other instructions.
* TCG supports LOAD PROGRAM PARAMETER, extended facilities, CPU type and id.
* TCG supports many more less common instructions.
=== SH ===
=== SH ===
* TCG can use host atomic instructions for tas.b
* TCG can use host atomic instructions for tas.b
Line 61: Line 67:
=== Tricore ===
=== Tricore ===
=== x86 ===
=== x86 ===
* The Q35 MCH supports TSEG higher than 8MB (the largest size available on real hardware)
* GDB can now look at SSE registers
* GDB can now look at SSE registers
* Apple SMC emulation implements the error status port
* IOMMU?
* IOMMU?
==== KVM ====
==== KVM ====
==== Xen ====
==== Xen ====
* Support for muli-page shared rings
=== Xtensa ===
=== Xtensa ===
* -serial can be used to direct the sim machine's console output to a character device.
* -serial can be used to direct the sim machine's console output to a character device.
Line 73: Line 82:
==== Block devices ====
==== Block devices ====
* The emulated NVMe device supports the Write Zeroes command.
* The emulated NVMe device supports the Write Zeroes command.
* The emulated NVMe device supports Controller Memory Buffers (currently only Submission Queue support is enabled).
* The emulated NVMe device supports Controller Memory Buffers (currently Submission Queue, Read Data and Write Data support is enabled).
==== Graphics ====
==== Graphics ====
* qxl and virtio-gpu support two new properties for the default display resolution, xres and yes
* qxl and virtio-gpu support two new properties for the default display resolution, xres and yes
Line 83: Line 92:
==== Network devices ====
==== Network devices ====
==== SCSI ====
==== SCSI ====
* Support for a vhost-user-scsi device
==== PCI/PCIe ====
==== PCI/PCIe ====
* PCI bridges are presenting again a standard hotplug controller (SHPC) after it was removed in 2.9.
* PCI bridges are presenting again a standard hotplug controller (SHPC) after it was removed in 2.9.
==== USB ====
==== USB ====
* Support for devices with sparse/non-sequential USB interfaces
==== VFIO ====
==== VFIO ====
==== virtio ====
==== virtio ====
Line 100: Line 111:
=== Monitor ===
=== Monitor ===
* New debugging command "info ramblock"
* New debugging command "info ramblock"
* QMP can now parse 64-bit unsigned values.
* New option "-a" (all) for "info registers", to dump registers for all CPUs
* New command "chardev-send-break"
=== Migration ===
=== Migration ===
* New "return-path" capability lets the source wait for the destination's acknowledgement that migration succeeded, and fails migration if it doesn't get one.
=== Network ===
=== Network ===
* slirp supports a minimal NC-SI (Network Controller Sideband Interface) backend
* slirp supports a minimal NC-SI (Network Controller Sideband Interface) backend
Line 108: Line 123:
* Support for the vxhs network protocol
* Support for the vxhs network protocol
* Progress information is printed when qemu-img receives a SIGINFO (on operating systems that support it).
* Progress information is printed when qemu-img receives a SIGINFO (on operating systems that support it).
* iscsi and rbd support again the filename option that was removed in 2.9.  It should not be necessary to use it, but existing images might specify it as their backing filename.
== User-mode emulation ==
== User-mode emulation ==
* Fixes to many system calls.
* Fixes to many system calls.
== TCG ==
== TCG ==
* QEMU can now be built without TCG support, by passing the --disable-tcg option to the configure script.  This is only supported on x86 for now.
== Guest agent ==
== Guest agent ==
* New commands 'guest-get-host-name', 'guest-get-users', 'guest-get-timezone'
* New commands 'guest-get-host-name', 'guest-get-users', 'guest-get-timezone'
Line 116: Line 133:
== New dependencies ==
== New dependencies ==
=== Build dependencies ===
=== Build dependencies ===
* QEMU now prefers SDL2 over SDL1 if both are available.
* QEMU now prefers GTK+3 over GTK+2 if both are available.
=== Run-time dependencies ===
=== Run-time dependencies ===



Revision as of 14:50, 14 July 2017

Warning of unsupported host systems

NetBSD is again a supported system.

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 CPU architectures:

  • ia64

and the OSes:

  • GNU/kFreeBSD
  • DragonFly BSD
  • OpenBSD
  • Solaris
  • AIX
  • Haiku

System emulation

Incompatible changes

Deprecated options

  • The -hdachs option is now deprecated
  • The monitor commands "usb_add" and "usb_del" are now deprecated, use "device_add" and "device_del" instead.
  • The command-line option "-usbdevice" is now deprecated, use "-device" instead.

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).

Alpha

68k

  • Support for 80-bit FPUs.

ARM

  • M profile exception return is implemented correctly
  • M profile emulation now supports the MPU
  • Exynos421 supports SDHCI and system poweroff
  • The ASPEED SoC includes an emulated FTGMAC100 network card and a temperature sensor device.
  • Support for ITS save/restore
  • zynq supports running for SPIPS flash

MIPS

Nios2

OpenRISC

  • Support for shadow registers, idle states, numcores and coreid registers, and the EVBAR and EPH registers.
  • Support for migration/savevm

PowerPC

  • QEMU now includes a VGA driver for Mac machine types (g3beige/mac99, respectively OldWorld and NewWorld)
  • Multi-threaded TCG is enabled for PPC targets.
  • Support for POWER9 guests with KVM
  • Partial support for POWER9 guests with TCG.
  • The powernv machine includes a more complete device tree.
  • OpenPIC timers now work

pSeries

s390

  • Basic support for using channel-attached 3270 "green screen" devices through the "x-terminal3270" device. Only x3270 is supported as client.
  • CSS ids are visible in "info qtree" and as QOM properties.
  • IPL supports the "bootindex" property via LOADPARM.
  • Support for vfio-ccw (channel device passthrough)
  • TCG can use host atomic operations for s390 "LOAD AND x" and "COMPARE SWAP" operations.
  • TCG implements EXECUTE completely
  • TCG supports LOAD PROGRAM PARAMETER, extended facilities, CPU type and id.
  • TCG supports many more less common instructions.

SH

  • TCG can use host atomic instructions for tas.b

SPARC

TileGX

Tricore

x86

  • The Q35 MCH supports TSEG higher than 8MB (the largest size available on real hardware)
  • GDB can now look at SSE registers
  • Apple SMC emulation implements the error status port
  • IOMMU?

KVM

Xen

  • Support for muli-page shared rings

Xtensa

  • -serial can be used to direct the sim machine's console output to a character device.

Device emulation and assignment

ACPI

  • New "-numa cpu" option quickly lets you assign CPUs to nodes by socket/core/thread id (for example a 2-socket x86 machine would be "-numa cpu,node-id=0,socket-id=0 "-numa cpu,node-id=1,socket-id=1" independent of the number of sockets per core.
  • Support for ACPI distance info.

Block devices

  • The emulated NVMe device supports the Write Zeroes command.
  • The emulated NVMe device supports Controller Memory Buffers (currently Submission Queue, Read Data and Write Data support is enabled).

Graphics

  • qxl and virtio-gpu support two new properties for the default display resolution, xres and yes

Input devices

  • input-linux supports absolute events

IPMI

  • Support for FRUs
  • SDRs can be loaded from a file.

Network devices

SCSI

  • Support for a vhost-user-scsi device

PCI/PCIe

  • PCI bridges are presenting again a standard hotplug controller (SHPC) after it was removed in 2.9.

USB

  • Support for devices with sparse/non-sequential USB interfaces

VFIO

virtio

  • vhost-user supports IOTLB messages.

Xen

  • Support for the Xen 9pfs backend.
  • QEMU uses libxendevicemodel when available.

fw_cfg

9pfs

Character devices

Crypto subsystem

GUI

Monitor

  • New debugging command "info ramblock"
  • QMP can now parse 64-bit unsigned values.
  • New option "-a" (all) for "info registers", to dump registers for all CPUs
  • New command "chardev-send-break"

Migration

  • New "return-path" capability lets the source wait for the destination's acknowledgement that migration succeeded, and fails migration if it doesn't get one.

Network

  • slirp supports a minimal NC-SI (Network Controller Sideband Interface) backend

Block devices and tools

  • Image locking?
  • Support for the vxhs network protocol
  • Progress information is printed when qemu-img receives a SIGINFO (on operating systems that support it).
  • iscsi and rbd support again the filename option that was removed in 2.9. It should not be necessary to use it, but existing images might specify it as their backing filename.

User-mode emulation

  • Fixes to many system calls.

TCG

  • QEMU can now be built without TCG support, by passing the --disable-tcg option to the configure script. This is only supported on x86 for now.

Guest agent

  • New commands 'guest-get-host-name', 'guest-get-users', 'guest-get-timezone'

New dependencies

Build dependencies

  • QEMU now prefers SDL2 over SDL1 if both are available.
  • QEMU now prefers GTK+3 over GTK+2 if both are available.

Run-time dependencies

Known issues

  • see Planning/2.10
  • The emulation of Raspberry Pi is still missing some features which are required to run newer versions of Raspbian.