ChangeLog/2.11: Difference between revisions

From QEMU
(update as of 530049bc1dcc24c1178a29d99ca08b6dd08413e0)
Line 16: Line 16:


== System emulation ==
== System emulation ==
* Improved memory usage and startup time for large number of devices.
=== Incompatible changes ===
=== Incompatible changes ===
=== Deprecated options ===
=== Deprecated options ===
Line 38: Line 39:
=== 68k ===
=== 68k ===
=== ARM ===
=== ARM ===
* lots of changes in M profile emulation, initial patches working towards ARMv8M support
* KVM allows using the PMU even with userspace irqchip
* QEMU can generate aborts on memory transaction failures
* Support for the Smartfusion2 board
* The xlnx-ep108 machine type is deprecated, and the (identical) xlnx-zcu102 machine type can be used instead
* The generic PCIe host bridge, used by the "virt" machine type, now supports PCI INTx routing.
=== Microblaze ===
=== Microblaze ===
=== MIPS ===
=== MIPS ===
Line 43: Line 51:
=== OpenRISC ===
=== OpenRISC ===
=== PowerPC ===
=== PowerPC ===
* Several fixes to Mac machine types
* Preliminary work on the Sam460 board
==== pSeries ====
==== pSeries ====
* KVM: support for guest SMT modes
* Several fixes for hotplug logic
=== s390 ===
=== s390 ===
* QEMU supports the new --s390-pgste linker option, so that the global vm.allocate_pgste sysctl is not needed anymore when using KVM
* diag288 watchdog support in TCG
* It is now possible to build s390 QEMU without CONFIG_PCI
* support for introduce virtio-gpu-ccw
* device_add now works for hotplugging s390x cpus
* netboot sets the DHCP client architecture id to 0x001f (s390 Basic)
==== KVM ====
* Support for extended TOD clock
=== SH ===
=== SH ===
=== SPARC ===
=== SPARC ===
Line 58: Line 79:
=== x86 ===
=== x86 ===
==== KVM ====
==== KVM ====
* KVM can advertise Hyper-V frequency MSRs when the TSC frequency is stable and known (either through the tsc_khz option, or by enabling the "invtsc" CPUID feature)
* Support for over 64 VCPUs in Window guests that have Hyper-V enlightenments enabled
==== Xen ====
==== Xen ====
=== Xtensa ===
=== Xtensa ===
Line 65: Line 88:
==== Block devices ====
==== Block devices ====
==== Graphics ====
==== Graphics ====
* QXL adds support for chunked cursors.
==== Input devices ====
==== Input devices ====
* virtio-input is now able to REL_WHEEL events.
==== IPMI ====
==== IPMI ====
==== Network devices ====
==== Network devices ====
==== PCI/PCIe ====
* Support for generic PCIe to PCI bridge device pcie-pci-bridge, which supports SHPC and can replace the i82801b11 DMI to PCI bridge.
* PCI bridges can pass information to the firmware regarding reservation of bus numbers, IO space and memory.
==== SCSI ====
==== SCSI ====
==== PCI/PCIe ====
* The scsi-block device supports the rerror and werror options.
* Persistent reservation helper: this lets virtual machines send persistent reservations without using CAP_SYS_RAWIO.  The helper, which relies on Unix permissions and SCM_RIGHTS to restrict access to raw SCSI device, also supports multipath devices in order to send persistent reservations to all paths.
   
 
==== USB ====
==== USB ====
==== VFIO ====
==== VFIO ====
* Experimental support for NVIDIA GPUDirect Cliques
==== virtio ====
==== virtio ====
==== Xen ====
==== Xen ====
==== fw_cfg ====
==== fw_cfg ====
==== 9pfs ====
==== 9pfs ====
=== Character devices ===
=== Character devices ===
=== Crypto subsystem ===
=== Crypto subsystem ===
=== GUI ===
=== GUI ===
=== Host support ===
* seccomp is enabled on s390x
=== Monitor ===
=== Monitor ===
* "info numa" provides information on hotplugged memory
* New commands "query-memory-size-summary" (QMP) and "info memory_size_summary" (HMP).
* New command "watchdog-set-action" (QMP).
* New option -d to "info mtree" (HMP) to debug the memory API's dispatch tree.
=== Migration ===
=== Migration ===
=== Network ===
=== Network ===
=== Block devices and tools ===
=== Block devices and tools ===
 
* New qemu-block-drivers(7) man page
== User-mode emulation ==
== User-mode emulation ==


== TCG ==
== TCG ==
* Improved code generation through constant pools


== Guest agent ==
== Guest agent ==
Line 93: Line 133:


=== GIT submodules ===
=== GIT submodules ===
 
* When building QEMU directly from a GIT checkout, 'make' will attempt to run 'git' to checkout a number of [[Documentation/GitSubmodules|GIT submodules]], which may have implications for some development environment setups.
When building QEMU directly from a GIT checkout, 'make' will attempt to run 'git' to checkout a number of [[Documentation/GitSubmodules|GIT submodules]], which may have implications for some development environment setups.


=== Build Dependencies ===
=== Build Dependencies ===
* Pixman is not anymore available as a submodule and has thus become a hard dependency of QEMU system emulation.


== Known issues ==
== Known issues ==
* see [[Planning/2.11]]
* see [[Planning/2.11]]

Revision as of 11:33, 8 November 2017

Warning: unsupported host systems

Support for Solaris 9 and earlier has been removed.

Support for AIX has been removed.

Support for the ia64 (Itanium) host CPU architecture has been removed.

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
  • OpenBSD (we have a build system for OpenBSD but would still be interested in talking to people who want to help us with supporting and improving QEMU on this OS)
  • Solaris
  • Haiku

System emulation

  • Improved memory usage and startup time for large number of devices.

Incompatible changes

Deprecated options

  • The command-line option "-hdachs" is now deprecated. Use the geometry options of "-device" instead.
  • The command-line option "-usbdevice" is now deprecated, use "-device" instead.
  • Using "-net dump" for capturing network traffic is now deprecated, use "-object filter-dump" with "-netdev" 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 monitor commands "usb_add" and "usb_del" are now deprecated, use "device_add" and "device_del" instead.
  • The monitor commands "host_net_add" and "host_net_remove" are now deprecated. Use "netdev_add" and "netdev_del" instead.
  • The "-nodefconfig" option is now deprecated. Use "-no-user-config" 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

ARM

  • lots of changes in M profile emulation, initial patches working towards ARMv8M support
  • KVM allows using the PMU even with userspace irqchip
  • QEMU can generate aborts on memory transaction failures
  • Support for the Smartfusion2 board
  • The xlnx-ep108 machine type is deprecated, and the (identical) xlnx-zcu102 machine type can be used instead
  • The generic PCIe host bridge, used by the "virt" machine type, now supports PCI INTx routing.

Microblaze

MIPS

Nios2

OpenRISC

PowerPC

  • Several fixes to Mac machine types
  • Preliminary work on the Sam460 board

pSeries

  • KVM: support for guest SMT modes
  • Several fixes for hotplug logic

s390

  • QEMU supports the new --s390-pgste linker option, so that the global vm.allocate_pgste sysctl is not needed anymore when using KVM
  • diag288 watchdog support in TCG
  • It is now possible to build s390 QEMU without CONFIG_PCI
  • support for introduce virtio-gpu-ccw
  • device_add now works for hotplugging s390x cpus
  • netboot sets the DHCP client architecture id to 0x001f (s390 Basic)

KVM

  • Support for extended TOD clock

SH

SPARC

  • Rework sun4m DMA code to use QEMU's in-built IOMMU/DMA APIs rather than use custom sun4m code
  • Implement sunhme (Happy Meal Ethernet) NIC and use it as the default NIC for sun4u
  • Update sun4u model to incorporate Simba PCI bridges into PCI topology like a real Ultra 5

NOTE: the sun4u changes may require changes to the QEMU command line. For more information read the QEMU SPARC wiki page section entitled Changes to sun4u machine from 2.11 onwards

TileGX

Tricore

x86

KVM

  • KVM can advertise Hyper-V frequency MSRs when the TSC frequency is stable and known (either through the tsc_khz option, or by enabling the "invtsc" CPUID feature)
  • Support for over 64 VCPUs in Window guests that have Hyper-V enlightenments enabled

Xen

Xtensa

Device emulation and assignment

ACPI

Audio

Block devices

Graphics

  • QXL adds support for chunked cursors.

Input devices

  • virtio-input is now able to REL_WHEEL events.

IPMI

Network devices

PCI/PCIe

  • Support for generic PCIe to PCI bridge device pcie-pci-bridge, which supports SHPC and can replace the i82801b11 DMI to PCI bridge.
  • PCI bridges can pass information to the firmware regarding reservation of bus numbers, IO space and memory.

SCSI

  • The scsi-block device supports the rerror and werror options.
  • Persistent reservation helper: this lets virtual machines send persistent reservations without using CAP_SYS_RAWIO. The helper, which relies on Unix permissions and SCM_RIGHTS to restrict access to raw SCSI device, also supports multipath devices in order to send persistent reservations to all paths.


USB

VFIO

  • Experimental support for NVIDIA GPUDirect Cliques

virtio

Xen

fw_cfg

9pfs

Character devices

Crypto subsystem

GUI

Host support

  • seccomp is enabled on s390x

Monitor

  • "info numa" provides information on hotplugged memory
  • New commands "query-memory-size-summary" (QMP) and "info memory_size_summary" (HMP).
  • New command "watchdog-set-action" (QMP).
  • New option -d to "info mtree" (HMP) to debug the memory API's dispatch tree.

Migration

Network

Block devices and tools

  • New qemu-block-drivers(7) man page

User-mode emulation

TCG

  • Improved code generation through constant pools

Guest agent

Build Information

GIT submodules

  • When building QEMU directly from a GIT checkout, 'make' will attempt to run 'git' to checkout a number of GIT submodules, which may have implications for some development environment setups.

Build Dependencies

  • Pixman is not anymore available as a submodule and has thus become a hard dependency of QEMU system emulation.

Known issues