ChangeLog/2.1

From QEMU

(as of commit 2b5b7ae917e8db48431631b1c5d909fa46c223a6)

System emulation

Incompatible changes

  • The 82573L NIC was incorrectly treated as an 8254xx model. It no longer works correctly on either Linux (3.14.*) or Windows 7 and has been removed.


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".
Starting with QEMU xyz.jkl, -readconfig will standardize on the name for the command line option.

ARM

  • Firmware can be passed to the vexpress machine via -bios.
  • Improvements to Allwinner SoC emulation.
  • Initial support in TCG for EL2 and EL3.
  • Much more complete support for AArch64.

LM32

Support for semihosting.

Microblaze

  • Support for u-boot initrd images.

Power

  • Support for VFIO (with guest-side IOMMU) on pSeries.
  • Support for emulation of decimal number instructions.
  • dump-guest-memory is supported for little endian ppc64
  • Support for virtio on little endian ppc64le.

s390

  • virtio-ccw supports migration
  • support for irqfds on adapter-interrupt enabled virtio-ccw devices
  • gdb server support for software breakpoints and hardware breakpoints (via PER)
  • enable CMMA on supported kernels
  • The s390-ccw bios now supports IPL (boot) from ECKD DASD (CDL, LDL or CMS formatted).

SPARC

  • Improved IOMMU emulation.

x86

  • QEMU now presents version 0x14 for the emulated local APIC, for consistency with KVM and improved compatibility with Mac OS X.
  • More faithful SMBus controller emulation.
  • More faithful CPL (current privilege level) emulation in TCG mode.
  • More faithful MMU emulation in TCG mode, including support for 1GB pages and SMEP/SMAP bugfixes.
  • Support for pinning memory on host NUMA nodes. The existing options "-mem-prealloc", "-mem-path", "-machine mem-merge" and "-machine dump-guest-core" are subsumed by the QOM objects "memory-backend-ram" and "memory-backend-file", and by the "memdev" option of "-numa node". This will be extended to other machines in future releases.
  • Support for memory hotplug using the new "pc-dimm" device and the QOM objects "memory-backend-ram" and "memory-backend-file".
  • New Broadwell CPU model.
  • TCG supports the "check" and "enforce" suboptions of "-cpu".

KVM

Xen

Xtensa

  • Support for loading uImage, device tree and initrd.

Device emulation and assignment

SCSI

  • Support for MSI and MSI-X in the megasas emulation.

USB

  • Support for file-sharing via MTP emulation
  • Host USB3 device can be attached to a EHCI (USB 2.0) controller in the guest
  • Support for attaching keyboards and mice to a specific video card (multi-seat).

VFIO

  • Support for RTL8168 NICs.

GUI

  • Many bug fixes for the GTK+ interface.
  • Mouse wheel support for the SDL 2.0 interface.
  • Support for multi-seat in the GTK+ and SDL 2.0 interfaces.

Monitor

  • Ctrl-L (form feed) can be used to clear the screen in the monitor.
  • More commands support command-line completion.
  • New monitor command "info memdev" (with the QMP counterpart "query-memdev").
  • New QMP command "query-acpi-ospm-status" and event "ACPI_DEVICE_OST" provide information from the guest's invocation of the _OST method.

Migration

  • Many fixes to XBZRLE.

Network

  • Improved emulation of link auto-negotiation fixes bugs in Mac OS X.
  • More variants of the e1000 NIC are supported (e1000-82540em, e1000-82544gc, e1000-82545em). The default e1000 fails with versions of Mac OS X starting at 10.9, while the new e1000-82545em works with all versions of Mac OS X starting at 10.6.
  • New "vhost-user" backend for -net and -netdev allows connecting with an external process on the same machine.
  • New "l2tpv3" transport is similar to "socket" but uses the standard Ethernet over L2TPv3 protocol. The transport supports all options present in the Linux kernel implementation, and allows QEMU to connect to any Linux host running kernel 3.3+, most routers and network devices as well as other QEMU instances.

Block devices in system emulation

  • Filenames can be JSON objects preceded by "json:", for example json:{'driver':'raw','file.filename':'test.img'}. This new syntax can be used in the file property for -drive, but also in qemu-io, qemu-img or backing file names.
  • The threaded backend for virtio-blk, introduced in QEMU 1.4, now supports almost all features of the block layer including: image formats, POSIX AIO (aio=threads), I/O throttling, statistics and error recovery (rerror/werror). It also does not require anymore manually setting config-wce=off. It is still considered experimental and is still missing support for long-running jobs (streaming, mirroring, snapshot deletion, backup, etc.).
  • The command-line interface for the threaded virtio-blk backend is now stable and looks like "-object iothread,id=id -device virtio-blk-pci,iothread=id". As in 2.0, this interface allows a M:N threading model. The old interface ("-device virtio-blk-pci,x-data-plane=on") is still present for backwards compatibility.

Various

  • Non-contiguous host CPUs can be assigned to a single NUMA node. Commas in the CPU list have to be escaped, as in "-numa node,cpus=0-3,,4-7"

Block devices and tools

  • Support for compressed (streamOptimized) VMDK images as conversion targets.

TCG

  • Improvement to AArch64, Alpha, ia64, MIPS, S390 and SPARC backends.

Tracing

  • Support for enabling multiple trace backends using for example "--enable-trace-backends=simple,ftrace" on the configure command line.

User-mode emulation

  • --enable-uname-release configure parameter has been removed
  • Improved support for FreeBSD.
  • Support for opening /proc/self/exe and /proc/self/cmdline
  • Support ARM HWCAP2 flags
  • Fixes in getrusage, wait4, uname, sched_getaffinity, settimeofday and epoll syscalls
  • New target ppc64le-linux-user, for little-endian Power platforms.

Known issues

  • The long-standing issue requiring configuration with --disable-coroutine-pool on Win32 is finally fixed.