ChangeLog/2.0
System emulation
ARM
- Support for "-M virt", a board type that only uses virtio devices
- Support for "-cpu host" when running under KVM
- Support for new ARMv8 instructions in TCG
- Support for AArch64 disassembling (requires a C++ compiler to be installed on the host)
- Support for AArch64 user-mode emulation
- Support for AArch64 system-mode emulation using KVM
- Support for the Canon PowerShot A1100 DIGIC board using "-M canon-a1100"
- Support for the allwinner-a10-based board "-M cubieboard"
- Support for flow control in the Cadence UART
Power
- Support for VSX instructions when running under TCG
- Prep is not anymore (incorrectly) included in qemu-system-ppcemb
x86
- On the Q35 machine, the HPET interrupt can now be attached to GSIs 16-23, like on real hardware.
- The Q35 machine now supports CPU hotplug.
- Two flash chips can be specified using the "-drive if=pflash" or "-pflash" options twice.
- Memory layout has changed slightly; to improve performance, the PIIX4 machine ("-M pc") now has 3GB of low memory instead of 3.5GB if the guest has more than 3.5GB of memory. Similarly, the Q35 machine ("-M q35") now has 2GB instead of 2.75GB of low memory if the guest has more than 2.75GB of overall memory.
- Support for migration of Intel MPX registers.
- The Apple SMC device is now exposed in the ACPI tables.
- PCI hotplug now supports devices behind a bridge (only for bridges not added by hotplug; hot-plugged bridges can still use the PCI Standard Hot-Plug Controller).
- Support for the Hyper-V reference time counter via the "hv-time" suboption of "-cpu". This can improve performance of Windows guests substantially for applications that do many floating-point or SIMD operations. (Requires KVM and Linux 3.14).
Xen
- PCI passthrough of devices with a ROM now works.
Xtensa
- added support for ML605 and KC705 FPGA boards
Device emulation
SCSI
- the SCSI layer can offload the WRITE SAME command to the host storage. This is supported on XFS file systems, raw devices, and iSCSI targets.
USB
- support for suspend-to-RAM in the XHCI controller
- support for Microsoft descriptors, to make Windows use remote suspend by default.
GUI
- Windows hosts support keyboard translation in the GTK+ interface
VNC
- setting the password via monitor command will not enable password auth as side effect any more. Use "qemu -vnc ${display},password" on the command line to enable password authentication.
Monitor
- New HMP command cpu-add for CPU hotplug
- New QMP commands object-add and object-del for generic object hotplug (enables virtio-rng hotplug)
- New HMP commands object_add and object_del for generic object hotplug
- Improved command-line completion for device_add and device_del (as well as the new commands object_add and object_del)
Migration
- Reduction (or elimination) of guest stalls during migration
- RDMA migration is now activated with the "rdma:HOST:PORT" syntax (used to be "x-rdma:HOST:PORT")
Network
- New backend "netmap" on BSD systems
Block devices and tools
- When the destination of "qemu-img convert" is a raw device, qemu-img can ask the host storage to "discard" it instead of writing zeroes
- "qemu-img convert" can be passed a "-S 0" option to create a fully allocated image
- "qemu-img convert" can use hints from the host storage to speed up the transfer
- "qemu-img convert", "qemu-img create", "qemu-img amend" support multiple occurrences of the "-o" command line option.
- Live snapshot merge (...-commit) can be used to merge the active layer of an image into one of the snapshots
- Live and offline snapshot merge ("commit") will resize the destination image if necessary.
- The iSCSI backends support snapshot merge.
- The libcurl interface had bitrotted and has been fixed.
- A new "quorum" driver for redundant storage is supported.
- QEMU is able to operate even if the underlying storage requires the buffer size to be a 4K multiple. This is the case for 4K-native disks (with cache=none or when accessed through iscsi:// URLs) and some raw devices. When this happens, QEMU emulates unaligned accesses using read-modify-write cycles if necessary. On properly configured guests newer than ~2009 there should be no performance penalty.
- qemu-io supports command editing via readline
- Pseudo-protocols like blkdebug and blkverify can be nested arbitrarily
- "query-block-stats" provides statistics for all images in the chain of backing files
- node-name, query-named-block-nodes: external snapshot, resize, change password
- Improved error messages for many operations
- QEMU can access NFSv3 shares directly from userspace using libnfs. The share must be configured to allow access from high-numbered ports
TCG
- Improvements to the TCG optimizer make it produce faster code
- QEMU can use getauxval to detect the host instruction set for PPC64, ARM, s390
- QEMU supports generating MOVBE, ANDN, instructions in the x86 backend
- Support for AArch64 disassembling (requires a C++ compiler to be installed on the host)
Tracing
- LTTng 2.x is now supported
User-mode emulation
- support for several more system calls and parameters