ChangeLog/4.0
System emulation
Incompatible changes
- The "handle" option to -fsdev and -virtfs has been removed. The "local" or "proxy" options should be used instead.
New deprecated options and features
cpu-add
QMP/HMP command- machine-types
pc-0.12
,pc-0.13
,pc-0.14
andpc-0.15
Consult the "Deprecated Features" appendix for the full list of historically deprecated features/options.
Alpha
68k
Arm
- Allow AArch64 processors to boot from a kernel placed over 4GB into RAM
- arm: Implement the ARMv8.1-HPD extension
- arm: Implement the ARMv8.2-AA32HPD extension
- arm: Implement the ARMv8.1-LOR extension (as the trivial "no limited ordering regions provided" minimum)
- The micro:bit board supports more devices: timer, GPIO and RNG
- The cubieboard model now implements the 'A' SRAM
- The BLK_MAX register in the TZ MPC device now reports the correct value
- The u-boot "noload" image type is now supported for the Arm virt board
HPPA
Microblaze
MIPS
- Build for MIPS n32 hosts fixed.
Nios2
OpenRISC
PowerPC
RISC-V
s390
- vfio-ap now no longer inhibits usage of memory ballooners
SH
SPARC
TileGX
Tricore
x86
- The HAX accelerator is now supported for Linux hosts too.
Xtensa
Device emulation and assignment
ACPI
Audio
Block devices
Graphics
Input devices
IPMI
Network devices
- pvrdma: Add support for RDMA MAD
NVDIMM
PCI/PCIe
SCSI
SMBIOS
TPM
USB
VFIO
virtio
Xen
fw_cfg
9pfs
Audio
Character devices
Crypto subsystem
- The block storage encryption backends are now capable of using multiple threads for encryption/decryption
GUI
Host support
Memory backends
Monitor
- QMP can now execute a few commands "out of band". This is useful for postcopy recovery. For details, see docs/interop/qmp-spec.txt.
query-qmp-schema
reflects QEMU's build configuration more closely. For instance, stuff related to replication is properly absent when QEMU was built with--disable-replication
.- QMP events SHUTDOWN and RESET now carry a reason
- New QMP command
query-current-machine
- QMP/HMP command
system_wakeup
now fails when the guest isn't suspended, or doesn't even support suspend. - QMP/HMP command
cpu-add
is now deprecated
Migration
Network
Block devices and tools
- Improved tracing and error diagnostics for NBD code
- Fix infinite loop in DMG image format
Tracing
Miscellaneous
- QEMU's builting gdbstub now supports the gdb multiprocess extension. Boards which have more than one cluster of CPUs (like the 'xlnx-zcu102' board when run with '-smp 6') will report them as being two processes (each of which has one thread per CPU in the cluster). You will need at least GDB 7.2. Attach to QEMU with a GDB command sequence like:
target extended :1234
add-inferior
inferior 2
attach 2
- and then the "info threads" command should show 2 processes.
- QEMU will default to KVM when compiled with --disable-tcg or when launched from an executable whose name ends with "kvm".
User-mode emulation
TCG
- SoftFloat acceleration - where it is safe to do so the softfloat helpers will use the host FPU instructions yeilding significant performance increases
Guest agent
Build Information
GIT submodules
Build Dependencies
- QEMU now requires at least GCC version 4.8 or Clang version 3.4 (or Clang from Xcode 5.1) to be built
- Running the QEMU testsuite now requires the Perl Test::Harness module. Most Linux and BSD distributions however install it by default together with Perl.
Known issues
- see Planning/4.0