ChangeLog/1.5

From QEMU

General

  • The default for log output enabled via the '-d' command line switch is now standard error rather than a file. You can obtain the previous behaviour using the '-D' command line switch to specify a file to send the logging to.
  • QEMU now uses poll rather than select, and thus does not have any restriction on the number of open file descriptors.

System emulation

Device emulation

  • New support for passing the host's TPM (Trusted Platform Module) to the guest.

Device assignment

  • VFIO supports primary VGA passthrough using the experimental "x-vga=on" option. The following devices seem to work: Nvidia 8400gs, 73001e, NVS290; ATI/AMD Radeon HD5450 and HD7850.
  • VFIO devices support the bootindex= property to override the default boot order for assigned PCI devices.

USB

  • Experimental support for USB 3.0 streams, both in the nec-usb-xhci controller and in the usb-uas USB-attached SCSI device emulation.
  • USB device passthrough has been rewritten to use libusb. For Linux, the two backends can be compiled in a single QEMU executable (if libusb is enabled, usb-host-linux will be the legacy implementation, usb-host will be the libusb-based one; if libusb is disabled, usb-host will be the legacy implementation). For BSD, it has to be chosen at configure time using --enable/disable-libusb (the default is to use libusb if it is available, otherwise use the legacy implementation).

ARM

  • The Zynq board provides a SD host controller interface.
  • versatile_pci supports MMIO BARs and implements the correct PCI IRQ mapping so that it can work on recent Linux kernels.

PPC

  • Various improvements to TCG code generation

x86

  • x86 supports emulation of a TPM (Trusted Platform Module) on machines that have a hardware TPM
  • Various speedups in TCG emulation of x86
  • The iPXE ROMs that are distributed with QEMU support EFI
  • TCG supports the SSE4.1, SSE4.2, PCLMULQDQ, AES-NI, BMI and ADX extensions.

QMP

  • QEMU now generates a DEVICE_DELETED event when the guest acknowledges a device hot-unplug operation.
  • Much better handling for non-ASCII codepoints in JSON strings

Character devices

  • Character devices gained support for flow control. More details in Features/ChardevFlowControl
  • All kinds of character devices can now be hot-plugged. Character device hotplug is also supported from the "human" monitor.

Block devices

  • IDE and SCSI disks always have the ability to issue "discard" (aka TRIM or UNMAP) commands. However, by default "discard" commands are silently ignored as they can cause performance degradation and fragmentation. To enable them, the "-drive" option now supports a "discard" suboption; the default value is "ignore" (or its synonym "off"), and the other valid value is "unmap" (or "on").
  • Sheepdog drives can also be specified with URIs.
  • iSCSI disks support on-line resizing using block_resize. Similar to block devices, the resize has to be done first outside QEMU.
  • Various performance improvements in qcow2 internal snapshots (savevm).
  • The NBD backend has improved latency.
  • qemu-nbd can now skip image format probing using the -f/--format command-line option.

SCSI

  • QEMU can now emulate the VMware PVSCSI device, vmw_pvscsi.
  • QEMU can now use tcm_vhost, a virtio-scsi device model based on the Linux-iSCSI implementation of SCSI.

Live Migration

  • Further improvements in throughput, up to +130% (4.2 Gbps in 1.5 vs 1.8 Gbps in 1.4) and latency.
  • Reviewed-By received for RDMA [PATCH v6]

User interface

  • QEMU now provides a GTK+ interface. The interface uses the VTE library to provide better terminal emulation for serial consoles and the monitor.

User-mode emulation

  • Threaded programs are now more stable, though still experimental.

Guest agent

  • New commands in qemu-ga let the host put CPUs online/offline with help from the OS (Linux only)

Host support

  • QEMU is now a lot faster on Windows hosts than in previous versions