ChangeLog/3.0: Difference between revisions

From QEMU
(update as of 61126a8b4bea43212b575169d4140dc403fc7e90)
Line 17: Line 17:
* The "xlnx-ep108" machine has been replaced by the "xlnx-zcu102" machine.
* The "xlnx-ep108" machine has been replaced by the "xlnx-zcu102" machine.
* The qemu-img "convert -s snapshot_id_or_name" argument has been removed. Use "convert -l snapshot_param" instead.
* The qemu-img "convert -s snapshot_id_or_name" argument has been removed. Use "convert -l snapshot_param" instead.
 
* PPC support for explicitly allocated RMAs has been removed (kernel support removed in 2015)
=== Deprecated options and features ===
=== Deprecated options and features ===


Line 25: Line 25:
* The "pc-0.10" and "pc-0.11" machines are now deprecated. Use newer machine types instead.
* The "pc-0.10" and "pc-0.11" machines are now deprecated. Use newer machine types instead.
* Option "-enable-hax" is deprecated. Use "-accel hax" instead.
* Option "-enable-hax" is deprecated. Use "-accel hax" instead.
* The "arch" memeber in the reply to query-cpus-fast is deprecated, use "target" 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.
Consult the [https://qemu.weilnetz.de/doc/qemu-doc.html#Deprecated-features "Deprecated Features"] appendix for the full list of historically deprecated features/options.
Line 42: Line 43:
=== Alpha ===
=== Alpha ===
=== 68k ===
=== 68k ===
 
* Fixes for several instructions: subx with memory, flognp1, fcos, fsin, fmod
* Convert to TranslatorOps
 
* fixes: subx with memory, flognp1, fcos, fsin, fmod
 
* fix build Werror with gcc 8.0.1
 
* correctly disassemble move16


=== ARM ===
=== ARM ===
 
* Support for emulating the SMMUv3 (IOMMU). One can be added to the "virt" board with the command line option "-machine iommu=smmuv3"
* Support for [[Features/ARM/SVE|ARM's Scalable Vector Extensions]] in linux-user mode
* Support for v8M VLLDM and VLSTM.
* Support for various missing instructions from the v8.2-FP16 state.


=== HPPA ===
=== HPPA ===


=== Microblaze ===
=== Microblaze ===
* Translation bug fixes.
=== MIPS ===
=== MIPS ===
=== Nios2 ===
=== Nios2 ===
Line 65: Line 61:


* Add PMU support for mac99 machine selectable using via machine option (via=pmu or via=pmu-adb)
* Add PMU support for mac99 machine selectable using via machine option (via=pmu or via=pmu-adb)
* Many improvements for the Uninorth PCI host bridge for Mac machine types
* POWER9 hash MMU support?


==== pSeries ====
==== pSeries ====


=== RISC-V ===
=== RISC-V ===
 
* Improvements for privileged ISA emulation.
=== s390 ===
=== s390 ===
* add cpu model for the z14 Model ZR1 (the "small" z14)
* add cpu model for the z14 Model ZR1 (the "small" z14)
* add bpb/ppa15 (spectre mitigation) features to default cpu model for z196 and later
* add bpb/ppa15 (spectre mitigation) features to default cpu model for z196 and later
* configuration of consoles via -serial is now supported
* configuration of consoles via -serial is now supported
* s390-netboot now supports indirect loading via .INS files
==== TCG ====
==== TCG ====
* rework TOD handling and fix cpu hotplug
* rework TOD handling and fix cpu hotplug
Line 95: Line 94:
=== x86 ===
=== x86 ===
* Formatting of CPU models and flags reported with '-cpu help' has improved readability
* Formatting of CPU models and flags reported with '-cpu help' has improved readability
 
* New CPU model KnightsMill
* Support for the AMD TOPOEXT extension, to provide cache information for EPYC family processors.
==== KVM ====
==== KVM ====
* Support for Hyper-V reenlightenment MSRs with the 'hv-reenlightenment' CPU feature flag
* The 'ssbd', 'virt-ssbd', 'amd-ssbd' and 'amd-no-ssb' CPU feature flags are added in relation to the "Speculative Store Bypass" hardware vulnerability (CVE-2018-3639)
* The 'ssbd', 'virt-ssbd', 'amd-ssbd' and 'amd-no-ssb' CPU feature flags are added in relation to the "Speculative Store Bypass" hardware vulnerability (CVE-2018-3639)
==== Xen ====
==== Xen ====
Line 129: Line 130:
=== Crypto subsystem ===
=== Crypto subsystem ===
=== GUI ===
=== GUI ===
*The F10 menubar key is now disabled in the GTK+ front-end.
* The SDL front-end supports OpenGL ES.
=== Host support ===
=== Host support ===
=== Memory backends ===
=== Memory backends ===
Line 144: Line 147:
== User-mode emulation ==
== User-mode emulation ==


* make docker-binfmt-image-debian-NAME target for building user-mode images
* <tt>make docker-binfmt-image-debian-NAME</tt> can be used to build user-mode images. For example:
 
For example:


     make docker-binfmt-image-debian-ubuntu-bionic-arm64 \
     make docker-binfmt-image-debian-ubuntu-bionic-arm64 \
Line 154: Line 155:
* PPC64 host fixes (page size, mmap alignment, interrupted syscall, F_*LK64)
* PPC64 host fixes (page size, mmap alignment, interrupted syscall, F_*LK64)


* syscall fixes: mmap with 0 length, setsockopt, netlink
* Fixes for several syscalls: mmap with 0 length, setsockopt, netlink
 
* new syscalls: swapcontext (ppc), get_tls (ARM)
* new syscall: swapcontext (ppc)
* Most errors are now affected by <tt>-d</tt> rather than just dumped to stderr
 
* reports most of the errors to qemu_log/UNIMP rather than stderr
 
* qemu-binfmt-conf.sh: new options to use persistent (F) flag, ignore the OS/ABI field
* qemu-binfmt-conf.sh: new options to use persistent (F) flag, ignore the OS/ABI field
* add support of FDPIC for ARM
* add support of FDPIC for ARM
* Support for [[Features/ARM/SVE|ARM's Scalable Vector Extensions]]


== TCG ==
== TCG ==
Line 175: Line 173:


* The minimum acceptable version of GLib is increased from 2.22 to 2.40
* The minimum acceptable version of GLib is increased from 2.22 to 2.40
* RISC-V emulation requires libfdt.
* A set of rules declaring intentions for supported build target operating systems has been defined https://qemu.weilnetz.de/doc/qemu-doc.html#Supported-build-platforms
* A set of rules declaring intentions for supported build target operating systems has been defined https://qemu.weilnetz.de/doc/qemu-doc.html#Supported-build-platforms


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

Revision as of 07:24, 12 August 2018

Warning: unsupported host systems

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
  • Solaris
  • Haiku

System emulation

Incompatible changes

  • Option "-no-kvm-pit-reinjection" has been removed. Use "-global kvm-pit.lost_tick_policy=discard" instead.
  • Option "-no-kvm-irqchip" has been removed. Use "-machine kernel_irqchip=off" instead.
  • The "vlan" parameter of the "-net" option has been removed. Use "-netdev" with IDs or the "hubport" netdev instead.
  • The "xlnx-ep108" machine has been replaced by the "xlnx-zcu102" machine.
  • The qemu-img "convert -s snapshot_id_or_name" argument has been removed. Use "convert -l snapshot_param" instead.
  • PPC support for explicitly allocated RMAs has been removed (kernel support removed in 2015)

Deprecated options and features

  • The "arch" output member of the "query-cpus-fast" command is deprecated. Use the "target" output member instead.
  • Option "-virtioconsole" is deprecated, use "-device virtconsole" instead.
  • The non-functional "-clock" option will be removed soon.
  • The "pc-0.10" and "pc-0.11" machines are now deprecated. Use newer machine types instead.
  • Option "-enable-hax" is deprecated. Use "-accel hax" instead.
  • The "arch" memeber in the reply to query-cpus-fast is deprecated, use "target" 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

  • Fixes for several instructions: subx with memory, flognp1, fcos, fsin, fmod

ARM

  • Support for emulating the SMMUv3 (IOMMU). One can be added to the "virt" board with the command line option "-machine iommu=smmuv3"
  • Support for v8M VLLDM and VLSTM.
  • Support for various missing instructions from the v8.2-FP16 state.

HPPA

Microblaze

  • Translation bug fixes.

MIPS

Nios2

OpenRISC

PowerPC

  • Add PMU support for mac99 machine selectable using via machine option (via=pmu or via=pmu-adb)
  • Many improvements for the Uninorth PCI host bridge for Mac machine types
  • POWER9 hash MMU support?

pSeries

RISC-V

  • Improvements for privileged ISA emulation.

s390

  • add cpu model for the z14 Model ZR1 (the "small" z14)
  • add bpb/ppa15 (spectre mitigation) features to default cpu model for z196 and later
  • configuration of consoles via -serial is now supported
  • s390-netboot now supports indirect loading via .INS files

TCG

  • rework TOD handling and fix cpu hotplug

KVM

  • vfio-ccw: add "force-orb-pfch" parameter
    • used to accommodate guests that do not set the "unlimited prefetch" flag in the request block (which is not supported by vfio-ccw), but actually work fine with the current vfio-ccw implementation
  • remove unneeded calls to cpu_synchronize_state()

s390 firmware

  • allow non-sequential entries in boot menu
  • add support for indirect loading via .INS files in s390-netboot
  • add support for pxelinux.cfg-style network booting

SH

SPARC

  • Add -icount support for sun4u

TileGX

Tricore

x86

  • Formatting of CPU models and flags reported with '-cpu help' has improved readability
  • New CPU model KnightsMill
  • Support for the AMD TOPOEXT extension, to provide cache information for EPYC family processors.

KVM

  • Support for Hyper-V reenlightenment MSRs with the 'hv-reenlightenment' CPU feature flag
  • The 'ssbd', 'virt-ssbd', 'amd-ssbd' and 'amd-no-ssb' CPU feature flags are added in relation to the "Speculative Store Bypass" hardware vulnerability (CVE-2018-3639)

Xen

Xtensa

Device emulation and assignment

ACPI

Audio

Block devices

Graphics

Input devices

IPMI

Network devices

NVDIMM

PCI/PCIe

SCSI

SMBIOS

TPM

  • TPM emulator backend migration support
  • TPM TIS device migration support

USB

VFIO

virtio

Xen

fw_cfg

9pfs

Audio

Character devices

Crypto subsystem

GUI

  • The F10 menubar key is now disabled in the GTK+ front-end.
  • The SDL front-end supports OpenGL ES.

Host support

Memory backends

Monitor

Migration

  • Postcopy: The new 'max-postcopy-bandwidth' parameter can be used to limit the bandwidth during the postcopy phase of a migrate; it was previously unlimited.

Network

Block devices and tools

Tracing

Miscellaneous

  • Command line option values greater than 1024 bytes in length are no longer silently truncated.

User-mode emulation

  • make docker-binfmt-image-debian-NAME can be used to build user-mode images. For example:
   make docker-binfmt-image-debian-ubuntu-bionic-arm64 \
     DEB_ARCH=arm64 DEB_TYPE=bionic DEB_URL=http://ports.ubuntu.com \
     EXECUTABLE=./aarch64-linux-user/qemu-aarch64 V=1
  • PPC64 host fixes (page size, mmap alignment, interrupted syscall, F_*LK64)
  • Fixes for several syscalls: mmap with 0 length, setsockopt, netlink
  • new syscalls: swapcontext (ppc), get_tls (ARM)
  • Most errors are now affected by -d rather than just dumped to stderr
  • qemu-binfmt-conf.sh: new options to use persistent (F) flag, ignore the OS/ABI field
  • add support of FDPIC for ARM
  • Support for ARM's Scalable Vector Extensions

TCG

  • New build target "check-tcg" will run cross-architecture tests

Guest agent

Build Information

GIT submodules

Build Dependencies

Known issues