ChangeLog/2.11: Difference between revisions

From QEMU
(→‎Future incompatible changes: block: No more automatic overriding of the read-only mode by block drivers)
 
(12 intermediate revisions by 7 users not shown)
Line 26: Line 26:
* The monitor commands "host_net_add" and "host_net_remove" are now deprecated. Use "netdev_add" and "netdev_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.
* The "-nodefconfig" option is now deprecated.  Use "-no-user-config" instead.
Consult the [https://qemu.weilnetz.de/doc/qemu-doc.html#Deprecated-features| "Deprecated Features"] appendix for the full list of historically deprecated features/options.


=== Future incompatible changes ===
=== Future incompatible changes ===
Line 37: Line 39:
* 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).
* 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.
* 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 ===
=== Alpha ===
=== 68k ===
=== 68k ===
=== ARM ===
=== ARM ===
* lots of changes in M profile emulation, initial patches working towards ARMv8M support
* Various bug fixes in M profile emulation
* KVM allows using the PMU even with userspace irqchip
* KVM allows using the PMU even with userspace irqchip
* QEMU can generate aborts on memory transaction failures
* QEMU can generate aborts on memory transaction failures (though this is disabled for most existing board models)
* Support for the Smartfusion2 board
* Support for the Smartfusion2 board
* The xlnx-ep108 machine type is deprecated, and the (identical) xlnx-zcu102 machine type can be used instead
* 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.
* The generic PCIe host bridge, used by the "virt" machine type, now supports PCI INTx routing
* AArch64 CPU EL2 emulation should now be good enough to run Xen as a guest


=== Microblaze ===
=== Microblaze ===
Line 63: Line 67:
* QEMU supports the new --s390-pgste linker option, so that the global vm.allocate_pgste sysctl is not needed anymore when using KVM
* 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
* diag288 watchdog support in TCG
* It is now possible to build s390 QEMU without CONFIG_PCI
* It is now possible to build s390 QEMU without CONFIG_PCI (well, nearly)
* support for virtio-input-ccw and virtio-gpu-ccw
* support for virtio-input-ccw and virtio-gpu-ccw
* device_add now works for hotplugging s390x cpus
* device_add now works for hotplugging s390x cpus
* netboot sets the DHCP client architecture id to 0x001f (s390 Basic)
* netboot sets the DHCP client architecture id to 0x001f (s390 Basic)
* Experimental SMP support under TCG
* Experimental SMP support under TCG
* support for IDA (indirect addressing) for ccws (base css, virtio-ccw, and 3270)


==== KVM ====
==== KVM ====
* Support for extended TOD clock
* Support for extended TOD clock
* We noticed that QEMU is broken since 2.10 with Linux kernels < v3.15 and that nobody complained. We'll not fix but rather clean up based on this new minimum kernel level version if nobody speaks up.
=== SH ===
=== SH ===
=== SPARC ===
=== SPARC ===
Line 94: Line 101:
==== Input devices ====
==== Input devices ====
* virtio-input is now able to REL_WHEEL events.
* virtio-input is now able to REL_WHEEL events.
* The ps2 device now sends correct scancode sequences for Alt+Print, Shift/Ctrl+Print, Pause and Ctrl+Pause in all code sets
==== IPMI ====
==== IPMI ====
==== Network devices ====
==== Network devices ====
Line 111: Line 120:
==== fw_cfg ====
==== fw_cfg ====
==== 9pfs ====
==== 9pfs ====
* Some minor bug fixes


=== Character devices ===
=== Character devices ===
Line 116: Line 126:
=== GUI ===
=== GUI ===
* QEMU uses keycodemapdb as the source for mappings between the various scancode, keycode and keysym definitions.
* QEMU uses keycodemapdb as the source for mappings between the various scancode, keycode and keysym definitions.
* The VNC websockets server HTTP request validation has many bugs fixed which should improve client compatibility.
=== Host support ===
=== Host support ===
* seccomp is enabled on s390x
* seccomp is enabled on s390x
Line 129: Line 141:
* The NBD driver supports the structured reply extension.
* The NBD driver supports the structured reply extension.
* New qemu-block-drivers(7) man page
* New qemu-block-drivers(7) man page
* The performance of the integrated LUKS block driver has been improved.
* Support qcow2 shrinking in qemu and qemu-img.
== User-mode emulation ==
== User-mode emulation ==


Line 147: Line 162:
== Known issues ==
== Known issues ==
* see [[Planning/2.11]]
* see [[Planning/2.11]]
* The u-boot source (corresponding to the firmware file pc-bios/u-boot.e500) contains files whose name only differs in letter case.  To avoid path conflict problems when unpacking on a case-insensitive filesystem, the u-boot source is included in a roms/u-boot.tar.bz2 file.

Latest revision as of 01:21, 12 June 2018

Warning: unsupported host systems

  • 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

  • The sun4u changes may require changes to the QEMU command line. For more information read the Documentation/Platforms/SPARC wiki page (section Changes to sun4u machine from 2.11 onwards)
  • Invalid scsi-disk block size configurations, with the logical block size smaller than the physical block size, are rejected.
  • The legacy PCI assignment device for KVM, "pci-assign", was removed. Support for the device was deprecated in Linux in 2015 and removed in Linux 4.12. Use "vfio-pci" instead.

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.

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

ARM

  • Various bug fixes in M profile emulation
  • KVM allows using the PMU even with userspace irqchip
  • QEMU can generate aborts on memory transaction failures (though this is disabled for most existing board models)
  • 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
  • AArch64 CPU EL2 emulation should now be good enough to run Xen as a guest

Microblaze

MIPS

Nios2

OpenRISC

  • Experimental SMP support

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 (well, nearly)
  • support for virtio-input-ccw and virtio-gpu-ccw
  • device_add now works for hotplugging s390x cpus
  • netboot sets the DHCP client architecture id to 0x001f (s390 Basic)
  • Experimental SMP support under TCG
  • support for IDA (indirect addressing) for ccws (base css, virtio-ccw, and 3270)

KVM

  • Support for extended TOD clock
  • We noticed that QEMU is broken since 2.10 with Linux kernels < v3.15 and that nobody complained. We'll not fix but rather clean up based on this new minimum kernel level version if nobody speaks up.

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

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

  • Support for vmcoreinfo device to store dump details.

ACPI

Audio

Block devices

  • IDE and SCSI devices can report the disk rotation rate

Graphics

  • QXL adds support for chunked cursors.

Input devices

  • virtio-input is now able to REL_WHEEL events.
  • The ps2 device now sends correct scancode sequences for Alt+Print, Shift/Ctrl+Print, Pause and Ctrl+Pause in all code sets

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.

TPM

  • Support for TPM emulator

USB

VFIO

  • Experimental support for NVIDIA GPUDirect Cliques

virtio

Xen

fw_cfg

9pfs

  • Some minor bug fixes

Character devices

Crypto subsystem

GUI

  • QEMU uses keycodemapdb as the source for mappings between the various scancode, keycode and keysym definitions.
  • The VNC websockets server HTTP request validation has many bugs fixed which should improve client compatibility.

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

  • New capability pause-before-switchover (...)

Network

Block devices and tools

  • The NBD driver supports the structured reply extension.
  • New qemu-block-drivers(7) man page
  • The performance of the integrated LUKS block driver has been improved.
  • Support qcow2 shrinking in qemu and qemu-img.

User-mode emulation

TCG

  • Improved code generation through constant pools
  • More efficient compilation for SMP guests

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

  • Optional support for the Capstone disassembler library. Capstone can be compiled from the copy distributed in the QEMU tarballs (or from the submodule when building from git), or the system copy can be used instead.
  • Pixman is not anymore available as a submodule and has thus become a hard dependency of QEMU system emulation.

Known issues

  • see Planning/2.11
  • The u-boot source (corresponding to the firmware file pc-bios/u-boot.e500) contains files whose name only differs in letter case. To avoid path conflict problems when unpacking on a case-insensitive filesystem, the u-boot source is included in a roms/u-boot.tar.bz2 file.