ChangeLog/1.4

From QEMU

System emulation

Device emulation

Device assignment

  • Improved support for MSI-X on some Mellanox devices.
  • VFIO supports PCIe extended configuration space.

USB

  • Various CPU usage and throughput improvements for USB 2.0.
  • usb-tablet can be connected as an USB 2.0 device, also lowering the CPU usage substantially.
  • Improved support for pass-through of USB serial devices.
  • A new device usb-bot is the same as usb-storage, but is configured like other SCSI adapters and supports multiple LUNs.

Network

  • virtio-net supports multiqueue operation.

Other

  • Added support for IndustryPack emulation. The TEWS TPCI200 device emulation (device "tpci200") hosts IndustryPack modules, and the GE IP-Octal 232 emulation (device "ipoctal232") implements eight RS-232 serial ports.

ARM

  • Various minor bugfixes; no new features in this release.

MIPS

  • Improved support for DSP instructions.

PowerPC

  • pSeries: NVRAM support for improved guest installation experience
  • G3/G4: Allow dcbzl (for Mac OS X guests)
  • e500: Linux guests don't use use SWTLB anymore, freeing memory for real applications
  • e500: MSI support
  • e500: Allow for up to 31 PCI devices with -M ppce500
  • e500: Support idle hcall when running KVM on e500mc or above
  • e500: Emulate the EPR facility (e500mc and above)
  • PReP: Emulate a full PC87312 Super I/O chipset. This adds a parallel port. Changing the chipset configuration register at runtime is not yet supported.

S390

  • New virtio-ccw machine and transport support
  • Add -cpu ? support
  • Improved support for S390 emulation.

x86

  • Generation of APIC IDs for NUMA configuration is now compatible with the Intel® 64 Architecture Processor Topology Enumeration
  • Many fixes to the Q35 chipset emulation, including experimental AHCI migration support and support for device assignment.
  • Resetting the machine with a write to port 0xCF9 now works.
  • The xlevel argument for -cpu option currently silently fix-ups the user-provided value if it's less than 0x80000000. This will be removed in future QEMU versions; users are expected to provide valid xlevel value or QEMU will fail to start.

KVM

  • New devices isa-debug-exit and pc-testdev can be used to run kvm-unit-tests.

Xen

  • Persistent grants support implemented in xen_disk, giving substantial performance improvements.
  • xen_disk supports BLKIF_OP_FLUSH_DISKCACHE, making the device safer against power losses.
  • xen_console supports multiple secondary PV consoles.

QMP

  • New commands chardev-add and chardev-del add support for hotplugging character devices.
  • New ringbuf-read/ringbuf-write to read and write to memory chardevs
  • Various improvements in error messages

Block devices

  • Discard operations are now supported on block devices and on filesystems other than XFS. They are also fully asynchronous now.
  • Block device mirroring (also known as storage migration) performance was greatly improved.
  • New experimental threaded backend for virtio-block-pci. This new backend achieves several times the IOPS of the existing virtio-blk implementation; for now it can only be used for raw image files and disables features such as live snapshots and storage migration.

Live Migration

  • Moved migration from a timer to a thread, improving latency in other parts of QEMU and throughput of migration itself
  • Many machine models are now correctly marked as not migratable.

Spice

  • A new spiceport character device can be used to support arbitrary communication between the SPICE server on the host and the client.

VNC

  • Added support for the Websocket protocol.

User-mode emulation

  • Fix ppc guest signal handling
  • Fix MIPS target

Guest agent

  • qemu-ga supports hooks that are executed when the guest receives the guest-fsfreeze-freeze and guest-fsfreeze-thaw commands

Host support

  • Native asynchronous I/O for Win32 (introduced in 1.3) now actually works.