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
LM32
Microblaze
MIPS
PowerPC
- Support for the "nmi" monitor command, to enter the kernel debugger.
IBM
Freescale
s390
SPARC
x86
KVM
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).
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
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.
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".
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).
User-mode emulation
Build dependencies
ABI breaking
- We want to establish a mapping between option name and option table, then we can search related option table by option name. So we changes all the member name of QemuOptsList to match with actual command-line spelling(option name).
- The QemuOptsList member name values are ABI, changing them can break existing -readconfig configuration files.
- The drawback is that anyone that doesn't pay attention to the ABI break announcement, and expects -readconfig and friends to work while using the old spelling, is in for a surprise.
- Related changes: (all three have calcified into ABI already)
from to introduced in
acpi acpitable 0c764a9 v1.5.0
boot-opts boot 3d3b830 v1.0
smp-opts smp 12b7f57 v1.6.0
Known issues