Jump to navigation Jump to search

System emulation

Device emulation

Block devices

  • New device "nvme" provides a PCI device that implements the NVMe standard.
  • Fix for a possible data loss on crashes with IDE disks (due to mishandling of FLUSH requests)

Device assignment

  • Legacy PCI assignment supports CPU affinity for MSI interrupts.


  • The XHCI (USB 3.0) controller supports live migration.


  • The 32-bit ARMv8 LDA/STL instructions for load-acquire/store-release are supported (only with -cpu any); the remainder of the new v8 instructions will follow in a future release.
  • The vexpress-a9 and vexpress-a15 boards have experimental support for virtio devices via a virtio-mmio transport. Note that the virtio command lines used with x86 systems won't work as they will create PCI virtio devices; use the devices "virtio-blk-device", "virtio-net-device", etc instead. Note that this functionality may change in future releases.
  • The -initrd option now accepts ramdisks with a U-Boot header.
  • A model of the Calxeda ECX-2000 / Midway system is now supported ("midway").


  • Mac OS X guests supported (10.2-10.4 for PPC, 10.4 for PPC64)
  • pSeries guests support live migration and savevm.


  • If the kernel supports it, virtio-ccw supports ioeventfd and vhost when running on KVM.
  • The dump-guest-memory command is supported.


  • Sun4c and Sun4d architectures and related CPUs were not fully implemented and have been removed.
  • 24-bit display mode works


  • Firmware can be exposed to the guest as a flash device (using -pflash) also when running on KVM.
  • In addition to the "xenfv" machine type, which is kept for backwards compatibility, Xen can now use the pc machine type (including versioned machine types) using "-M pc -machine accel=xen". Note that using PV-on-HVM drivers requires "-M pc -machine accel=xen -device xen-platform".
  • Conroe, Penryn and Nehalem CPUs have had their CPUID values fixed
  • "-M isapc" now works on KVM too.
  • -pflash can be used with KVM too.
  • pvpanic device can now be enabled and disabled. Default has been changed to "disabled" (from "enabled" in 1.5). To enable, add flag -device pvpanic. pvpanic is a paravirtualized device for reporting guest panic events to management tools.


  • info block now returns different output for HMP. HMP is not a programmatic interface, please use QMP if you need a stable programmatic interface.
  • "-serial mon:stdio" will now trap signals in the same way that "-nographic" has always done. This means that ^C will be passed to the guest.

Block devices

  • The "whitelist" that lets packagers specify which block device formats are supported by QEMU will now allow specifying formats that QEMU should only allow when opened as read-only. The --block-drv-whitelist configure option is thus split in two new options, --block-drv-rw-whitelist and --block-drv-ro-whitelist.
  • Support for a new block device background job. Started by drive-backup, it will backup a disk's content to a new file. Unlike drive-mirror, the new file will include the source disk's content at the time the backup job was started. Atomic backup of multiple disks is supported using the "transaction" QMP command.
  • Several bugfixes for VMDK and curl backends.
  • Support for thin provisioning ("discard") on qcow2 images. When a device is opened with "-drive ...,discard=on", discard requests from the guest are forwarded to the underlying file system or block device as is the case for "raw" format images.

Live Migration

  • Initial support for live migration over RDMA using "migrate x-rdma:HOST:PORT".
  • Support for auto-convergence ("CPU stunning")

User interface

  • BSDs now support the GTK+ user interface.
  • The GTK+ interface supports -full-screen and -no-quit
  • The Cocoa user interface now supports Mac OS X 10.6 better.

User-mode emulation

  • Support for /proc/self has been extnded to include /proc/$$ (where $$ is the result of the getpid() system call).
  • The longstanding problem where fork() would typically fail "Invalid argument" for some guest architectures (most notably i386) has been fixed.

Guest agent

  • On Win32, the state directory will be placed under CSIDL_COMMON_APPDATA, which typically is "C:\Documents and Settings\All Users\Application Data".

Host support

  • linux-user does not support anymore *at system calls on glibc versions older than 2.5.
  • New TCG target for aarch64.
  • Build ARM, Microblaze and PPC targets will now use a bundled libfdt if the library is not available on the host.
  • Support for TUN/TAP on Mac OS X (
  • It is now possible to build an installer for QEMU on Windows (make all installer). For this feature, NSIS must be installed on the build host. NSIS is also available for cross development.

Known problems

  • In TCG mode, GTK terminal windows lose characters and can raise deadlocks.
  • GDB 'g' packets may contain more registers than expected for arm, m68k and ppc guests.
  • On Win32 you should pass the --disable-coroutine-pool option on the configure command line.