ChangeLog/2.2

From QEMU
Revision as of 06:24, 6 November 2014 by GongLei (talk | contribs)

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

  • Support for loading a device tree even with no -kernel option or when booting ELF images
  • Support for input interrupts in the PL061 GPIO controller
  • TCG can emulate breakpoints and watchpoints.
  • The PSCI firmware interface can be emulated even when running without KVM.

LM32

Microblaze

MIPS

  • Support for MIPS64 Release 6 emulation.
  • Support for MIPS SIMD Architecture emulation.
  • Fix for incorrectly handled delay slots in MIPS16 and microMIPS.

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.
  • Support for the e500 platform bus and dynamic instantiation of FreeScale eTSEC devices (-device eTSEC).
  • Support for MPC8XXX gpio controller.

s390

  • Enhance support for boot from DASD to handle more formats.
  • Support for memory hotplug.
  • Support for cpu state handling and migration.
  • Support for booting newer kernels under TCG.

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) on the Q35 machine type.
  • Support for AVX512 emulation.
  • All CPUs now work with "-cpu MODEL,enforce", of course as long as TCG or KVM support the CPU's set of features. Previously, a few CPUs included extraneous CPUID flags that cause "-cpu MODEL,enforce" to fail.

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

  • New script for automatic core import from xtensa configuration overlay.

Device emulation and assignment

IDE

  • More accurate emulation of AHCI, especially visible with Windows guests.

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.
  • Support for LSI MegaRAID SAS 2108 HBAs (-device megasas-gen2). Note that booting from this device does not work yet.
  • 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).
  • Support for USB 2.0 (high speed) mice and keyboards, complementing the existing support for high speed USB tablets. High speed devices avoid the less efficient UHCI controller, and thus use less CPU on the host.

VFIO

Character devices

  • Support for automatic reconnection of client sockets (e.g. "-chardev socket,host=localhost,port=12345,nowait,reconnect=5").

Boot devices

  • Support for dynamically modifying boot order of guest, and ensure it takes effect during reboot.

GUI

Monitor

  • The "info pcmcia" command was removed. PCMCIA hotplug was never implemented, and thus the command could only return static information.

Migration

Network

  • Samba 4.1 is now supported.

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, the embedded NBD server, and background jobs (backup, stream, mirror, commit).

Various

Block devices and tools

  • QEMU is more resistent against failure of large allocations in the block layer
  • Support for Archipelago as a QEMU block backend
  • Support for Parallels images larger than 2TB.
  • Migration now works when using qcow2 over Ceph.
  • 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).

User-mode emulation

  • new option: presetting AT_RANDOM auxval with -seed option or QEMU_RAND_SEED env variable
  • new system calls supported
    • timerfd_create timerfd_gettime timerfd_settime
    • ioprio_get ioprio_set
    • setns
    • unshare
  • enable epoll_pwait on ARM
  • implemented signal handling for PPC64
  • fixed contents of /proc/self/maps

Build dependencies

Known issues