ChangeLog/2.2
System emulation
Incompatible changes
Future incompatible changes
- Three options are using different names on the command line and in configuration file. In particular:
- The "acpi" configuration file section matches command-line option "acpitable";
- The "boot-opts" configuration file section matches command-line option "boot";
- The "smp-opts" configuration file section matches command-line option "smp".
- Starting with QEMU xyz.jkl, -readconfig will standardize on the name for the command line option.
ARM
- Initial support for emulation of hypervisor (EL2) and secure (EL3) privilege levels
- Support for loading a device tree even with no -kenel option or when booting ELF images
- Support for input interrupts in the PL061 GPIO controller
- TCG can emulate breakpoints and watchpoints.
LM32
Microblaze
MIPS
PowerPC
- Mac OS X 10.2, 10.3 and 10.4 guests run with the mac99 machine type.
- Bugfixes and optimization for TCG emulation of PowerPC targets.
IBM (pSeries)
- Support for the "nmi" monitor command, to enter the kernel debugger.
Freescale (BookE)
- Breakpoint support on KVM.
s390
- Enhance support for boot from DASD to handle more formats.
- Support for memory hotplug.
- Support for cpu state handling and migration.
SPARC
- Emulation of TCX hardware acceleration.
TriCore
- New target.
x86
- Support for IOMMU (VT-d) emulation on the Q35 machine type, enabled with "-machine iommu=on"
- Support for specifying drives in short form on the command-line (i.e. using -cdrom, -hda, -drive if=ide)
KVM
- More robust live migration of the kvm pv clock
Xen
- QEMU can now boot a bzImage or multiboot kernel under Xen, using the command line option -kernel.
Xtensa
Device emulation and assignment
SCSI
- Passthrough of vendor-specific commands now works (only with the virtio-scsi HBA).
- Initial support in virtio-scsi for a threaded backend, which is used in the same way as virtio-blk ("-object iothread,id=id" and "-device virtio-scsi-pci,iothread=id"). Note that the code has known thread-safety problems that can lead to QEMU using freed memory. They should not happen in normal use, they can be triggered easily by malicious guests. This option should only be used if you are interested in making relevant parts of QEMU thread safe.
- virtio-scsi can now execute Abort Task and Abort Task Set task management functions asynchronously.
PCI/PCIe
- MSIs are now (correctly) disabled until bus master DMA is enabled for the device.
- Support for ARI forwarding on PCIe root ports.
USB
- Support for hot-plugging XHCI/EHCI/UHCI controllers (in the case of EHCI/UHCI, only if there are no companion controllers)
VFIO
GUI
Monitor
Migration
Network
Block devices in system emulation
- Many fixes to AHCI emulation.
- The list of functionality now supported in threaded virtio-blk backend is growing: new in 2.2 are resizing of disks, device hot-unplug, and the embedded NBD server.
Various
Block devices and tools
- Support for Archipelago as a QEMU block backend
- QEMU is more resistent against failure of large allocations in the block layer
- Support for Parallels images larger than 2TB.
- Network-based drivers (NBD, libiscsi, etc.) now work on Win32 hosts too.
- qemu-img source cache option?
- qemu-nbd has a new --detect-zeroes option.
TCG
- In icount mode, it is possible to slow down emulation to match the requested CPU frequency (thus ensuring that the host and guest clocks remain aligned). This is enabled with "-icount N,align=on".
- A new "victim TLB" provides a 5-10% performance improvement.
Tracing
- QEMU provides a SystemTap script that outputs binary trace data, for use in flight-recorder mode. The resulting traces can be parsed with QEMU's simpletrace.py script (using the --no-header command-line option).