ChangeLog/1.3
QMP
- The sendkey monitor command is now available via QMP.
All targets
- QEMU can now use the Linux VFIO driver to assign PCI devices to a virtual machine.
ARM
MIPS
- Loongson Multimedia Instructions are now implemented.
x86
- The TSC frequency can be larger than 2.147 GHz.
- Configuration files do not support anymore the cpudef section.
- TCG (emulation) supports the SMEP (Supervisor Mode Execution Prevention) and SMAP (Supervisor Mode Access Prevention) features of newer x86 processors.
- CPUID/models?
Xtensa
Device emulation
- Emulation of the MC146818 real-time clock (used on PC and several other boards) does not wake up QEMU anymore every second to update the clock.
- USB3 has been vastly improved, including support for USB mass storage devices and MSI/MSI-X support for the XHCI controller.
- USB redirection now supports live migration.
- Several bugs in the AHCI controller were fixed to support recent Windows versions.
- ivshmem now has a "use64" property which will make the ivshmem driver register a 64-bit memory BAR.
Network devices
- Some problems were fixed leading to bad receive performance of E1000 and Xen network cards.
Block devices
- qemu-img now can output information in JSON format using "qemu-img info --output=json".
- Glusterfs volumes can be accessed with "gluster://" URIs for "-drive" and similar options. Optionally the transport can also be specified, as in "gluster+tcp://" (other supported transports are "unix" and "rdma").
- Options on the QMP streaming command direct the job to pause on encountering errors, or to ignore them altogether.
- A new block job is supported: live block commit (also known as "snapshot deletion") moves data from an image to another in the backing file chain. With the current implementation of QEMU 1.3, the "source" image may not be the active one.
- A new block job is supported: live disk mirroring (also known as "storage migration") moves data from an image to another. A new command "block-job-complete" is used to switch the VM to use the destination image exclusively.
- Block jobs can now be paused and resumed from the monitor.
- QEMU embeds an NBD server which, for now, is only available via QMP. The NBD server allows live access to the image seen by the VM. Note that the embedded server uses "named exports", which QEMU can access using the "nbd:host:port:exportname=name" syntax.
Live Migration, Save/Restore
- The "stop" and "cont" commands have new semantics on the destination machine during migration. Previously, the outcome depended on whether the commands were issued before or after the source connected to the destination QEMU: in particular, "cont" would fail if issued before connection, and "undo" the effect of the -S command-line option if issued after. Starting from this version, the effect of "stop" and "cont" will always take place at the end of migration (overriding the presence or absence of the -S option) and "cont" will never fail. This change should be transparent, since the old behavior was usually subject to a race condition.
- The monitor now remains responsive during incoming migration. The new NBD server is also available during incoming migration.
Spice
- QEMU will only send changed screen content to the Spice client when running in legacy VGA mode.
- Seamless migration?
KVM
- QEMU now supports "old-style" PCI device assignment, which was the last missing feature from the qemu-kvm fork. Despite some remaining minor differences between qemu-kvm and QEMU, it is possible to switch from qemu-kvm to QEMU as soon as your guests can be rebooted. Live migration from qemu-kvm 1.2 to QEMU 1.3 is not supported, but can be enabled easily by downstream distributions who want to switch their packages from qemu-kvm to QEMU.
Xen
- QEMU can now be used to live-migrate Xen domains.
SLIRP
- SLIRP's TFTP server has improved performance, can transmit files bigger than 32 MB, and supports the block size option.
Guest agent
- The guest agent will now store the state file in /var/run by default.
Host support
- SPARCv7 and v8 support was removed.
Build dependencies
- QEMU can now be built with Clang.