ChangeLog/2.5

From QEMU

System emulation

Incompatible changes

  • The mips32r5-generic CPU was renamed to P5600
  • Host floppy device pass-through (block driver “host_floppy”) has been removed; it is still possible to use them just like any other device file, however, a medium change will no longer be passed through to the guest

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.
  • Image encryption is fatally flawed, and will be dropped entirely. It'll remain available only in qemu-img, so you can use 'qemu-img convert' to convert encrypted images to uncrypted ones.
  • Host floppy device pass-through (block driver "host_floppy") is deprecated, and will be dropped in a future release.
  • Block device parameter aio=native has no effect without cache.direct=on. It will be made an error.
  • A few devices will be configured with explicit properties instead of implicitly. Unlikely to affect users; for the full list, see the 2.3 ChangeLog.
  • 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.
  • The s390-virtio machine has been deprecated for 2.5; it will be removed in 2.6. s390x users should switch to the (default) s390-ccw-virtio machine.

Alpha

ARM

  • The "virt" machine type supports passing SMBIOS to the firmware.
  • Semihosting support on AArch64
  • New i.MX31 SoC.
  • The ZynqMP and Allwinner A10 platforms support AHCI.
  • Support for VGICv3 in KVM
  • Support for GICv3 in the ACPI tables.
  • The "virt" machine now has a second PCIe MMIO region of 512GB in size in high memory. Note that older 32-bit ARM Linux kernels built without CONFIG_LPAE have a bug where the presence of this region in high memory causes them to refuse to use the PCIe controller at all. In this case you can either reconfigure your kernel with CONFIG_LPAE=y, or pass QEMU the "-machine highmem=off" option to disable the use of high memory for PCIe. The kernel bug is expected to be fixed in Linux kernel release 4.4.

MIPS

  • The mips32r5-generic CPU was renamed to P5600
  • Improvements to MIPS R6 emulation

PowerPC

pSeries

  • Support for memory hotplug
  • The shipped version of SLOF includes GPT support.
  • Using VFIO doesn't need spapr-pci-vfio-host-bridge anymore.
  • virtio-vga now supported on sPAPR guests.

s390

  • Storage keys are migrated.
  • New "info skeys" command in HMP to dump the storage key for a given address.
  • Support for virtio 1.0 in the virtio-ccw devices.
    • A maximum virtio-ccw revision can be specified via the "max_revision" property: max_revision=0 may be used to enforce usage of legacy virtio mode.
  • Support for boot from El Torito iso images on virtio-blk has been added.

SH

SPARC

TileGX

  • New target.

x86

  • The emulated IOMMU (VT-d) supports devices behind a bridge
  • TCG supports Debug Extensions (CR4.DE).
  • QEMU will warn when using a "-cpu" model that includes unsupported features. These features are disabled automatically, just like in previous versions of QEMU

KVM

  • Support for Hyper-V-compatible reporting of crashes.

Xen

  • Support for passthrough of Intel integrated GPUs.

Device emulation and assignment

  • fw_cfg supports a DMA interface on ARM and x86. This interface makes -kernel/-initrd much faster if supported by the firmware. (FIXME: which firmware versions support it?)

ACPI

Audio

Block devices

Character devices

IDE

  • AHCI ATAPI PIO transfers greater than one sector are fixed. This should help on experimental OVMF firmware builds that utilize such transfers.
  • CVE-2015-6855: Non-ATAPI commands to ATAPI devices are now rejected, preventing a divide-by-zero crash.
  • Zero byte count limits will no longer hang ATAPI drives.
  • ATAPI PIO reads, when the byte count limit is set to the ATAPI block size, are now asynchronous. This should help to prevent hangs due to missing CDROM media mounted via NFS.

Mouse/keyboard

Network

SCSI

  • scsi-generic devices now can be used together with a "readonly=on" backend.

Shared memory device

  • A sample implementation of the ivshmem client and ivhsmem server is included with QEMU.
  • ivshmem supports a new "x-memdev" property that uses a memory object for the backend. This makes it possible to use ivshmem with a hugetlbfs backend. This property is experimental and may be removed in future release in favour of an alternative ivshmem device.
  • Use kvm irqfd for msi notifications
  • Protocol change, native long -> LE int64_t

PCI/PCIe

TPM

VFIO

virtio

  • virtio-gpu now supports 3D mode
  • vhost-user now supports live migration

VGA

Character devices

GUI

  • New syntax for enabling TLS in the VNC server:
    • Equivalent to -vnc hostname:0,tls: -object tls-creds-anon,id=tls0,endpoint=server -vnc hostname:0,tls-creds=tls0
    • Equivalent to -vnc hostname:0,tls,x509=/path/to/certs: -object tls-creds-x509,id=tls0,endpoint=server,dir=/path/to/certs,verify-peer=no -vnc hostname:0,tls-creds=tls0
    • Equivalent to -vnc hostname:0,tls,x509verify=/path/to/certs: -object tls-creds-x509,id=tls0,endpoint=server,dir=/path/to/certs,verify-peer=yes -vnc hostname:0,tls-creds=tls0
  • The Cocoa GUI does not have show an 'open image file' dialog box anymore even if QEMU is started without arguments
  • Thu curses GUI supports 256 colors and line graphics.

Monitor

  • New "info iothreads" command.
  • New "query-qmp-schema" command allows the caller to introspect the QMP schema used by QEMU.

Migration

  • Postcopy migration for migration of large/busy guests
  • A more flexible auto-converge mechanism (for busy guests)

Network

  • Support for multiqueue in vhost-user.
  • Support for network filters. Currently, the only filter object is "filter-buffer", which batches packets every N microseconds. Filters are attached to a netdev device using e.g. "-object filter-buffer,id=filter,netdev=net0,queue=rx,interval=1000" (which creates a 1ms filter-buffer).

Block devices in system emulation

Command-line options

TCG

  • Improved system emulation performance for targets with software TLBs (e.g. SPARC).
  • Initial support for record/replay.

Block devices and tools

  • The HMP “change” command (QMP's “blockdev-change-medium”) now allows you to change the read-only mode of the device (e.g. when inserting a read-only floppy disk image into a previously R/W drive)
  • Fine-grained control over a block device's tray with the new QMP commands “blockdev-open-tray”, “blockdev-close-tray”, “blockdev-insert-medium”, and “blockdev-remove-medium”
  • New “reopen” command in qemu-io
  • block-dirty-bitmap-add and block-dirty-bitmap-clear transaction actions have been added to now fully support (transient) incremental bitmap usage and management.
  • QMP transactions now support a "completion-mode" parameter which controls the completion behavior of jobs launched by transactions, which will allow them to fail together. See the bitmaps.md documentation for how this affects incremental backups.

Audio

Guest agent

  • Add an optional qemu-ga.conf system configuration
  • Support for dumping the configuration current file with --dump-conf
  • Win32 support for guest-set-user-password
  • New command guest-exec

User-mode emulation

  • The configure option --disable-guest-base has been removed.

Build dependencies

Known issues

  • SDL audio only works with SDL 1.x.
  • 64-bit QEMU crashes on Windows (Fix)