ChangeLog/2.0: Difference between revisions
m (Prep is neither the machine name nor the acronym, change to PReP) |
|||
Line 17: | Line 17: | ||
* Support for Altivec 2.07 and VSX instructions when running under TCG | * Support for Altivec 2.07 and VSX instructions when running under TCG | ||
* Support for ISA 2.06 "load/store quadword instructions", "divide extended instructions" and "floating-point test instructions" when running under TCG | * Support for ISA 2.06 "load/store quadword instructions", "divide extended instructions" and "floating-point test instructions" when running under TCG | ||
* | * PReP is not anymore (incorrectly) included in qemu-system-ppcemb | ||
* Improved support for "-nodefaults" on the pSeries machine. Display devices created with "-device VGA" will be handled correctly in the device tree. | * Improved support for "-nodefaults" on the pSeries machine. Display devices created with "-device VGA" will be handled correctly in the device tree. | ||
Revision as of 02:17, 20 March 2014
System emulation
Incompatible changes to bus names
- All onboard buses now have distinct names. The following buses got renamed: i2c-bus.0 to i2c-bus.1 for machines n800, n810; virtio-mmio-bus.0 to virtio-mmio-bus.3 for vexpress-a15, vexpress-a9; virtio-mmio-bus.0 to virtio-mmio-bus.31 for virt; usb-bus.0 to usb-bus.1 for xilinx-zynq-a9, fulong2e; ide.0 to ide.1 for isapc, mips, g3beige, mac99, prep. Breaks migration. You can try to migrate from old to new by using bus=NEW rather bus=OLD on the destination.
- The root PCI bus on the pSeries machine is now called "pci.0" rather than "pci".
ARM
- Support for "-M virt", a board type that only uses virtio devices
- Support for "-cpu host" when running under KVM
- Support for new 32-bit mode ARMv8 instructions in TCG
- Support for AArch64 disassembling (requires a C++ compiler to be installed on the host)
- Initial support for KVM on AArch64 systems (some features such as migration are not yet implemented)
- Support for the Canon PowerShot A1100 DIGIC board using "-M canon-a1100"
- Support for the allwinner-a10-based board "-M cubieboard"
- Support for flow control in the Cadence UART
Power
- Support for Altivec 2.07 and VSX instructions when running under TCG
- Support for ISA 2.06 "load/store quadword instructions", "divide extended instructions" and "floating-point test instructions" when running under TCG
- PReP is not anymore (incorrectly) included in qemu-system-ppcemb
- Improved support for "-nodefaults" on the pSeries machine. Display devices created with "-device VGA" will be handled correctly in the device tree.
s390
- Support for adapter interrupts in virtio-cc2
SPARC
- Support for Sun CG3 framebuffer with the Sun4m machine. The CG3 framebuffer can be requested with "-vga cg3".
- Support for the CASA compare-and-swap instruction in TCG.
x86
- On the Q35 machine, the HPET interrupt can now be attached to GSIs 16-23, like on real hardware.
- The Q35 machine now supports CPU hotplug.
- Two flash chips can be specified using the "-drive if=pflash" or "-pflash" options twice.
- Memory layout has changed slightly; to improve performance, the PIIX4 machine ("-M pc") now has 3GB of low memory instead of 3.5GB if the guest has more than 3.5GB of memory. Similarly, the Q35 machine ("-M q35") now has 2GB instead of 2.75GB of low memory if the guest has more than 2.75GB of overall memory.
- Support for migration of Intel MPX registers.
- The Apple SMC device is now exposed in the ACPI tables.
- PCI hotplug now supports devices behind a bridge (only for bridges not added by hotplug; hot-plugged bridges can still use the PCI Standard Hot-Plug Controller).
- Support for the Hyper-V reference time counter via the "hv-time" suboption of "-cpu". This can improve performance of Windows guests substantially for applications that do many floating-point or SIMD operations. (Requires KVM and Linux 3.14).
- The distributed qemupciserial.inf file now allows installing multiport PCI serial devices on Windows too.
KVM
- x2apic is now enabled by default when KVM is in use.
Xen
- PCI passthrough of devices with a ROM now works.
Xtensa
- added support for ML605 and KC705 FPGA boards.
- Cache-related opcodes now correctly check privilege level/memory accessibility.
Device emulation
SCSI
- the SCSI layer can offload the WRITE SAME command to the host storage. This is supported on XFS file systems, raw devices, and iSCSI targets.
- SCSI disks can report a port WWN and port index, to make them look more like "real" SAS disks
USB
- support for suspend-to-RAM in the XHCI controller
- support for Microsoft descriptors, to make Windows use remote suspend by default.
GUI
- Windows hosts support keyboard translation in the GTK+ interface
- Support for SDL 2.0.
VNC
- setting the password via monitor command will not enable password auth as side effect any more. Use "qemu -vnc ${display},password" on the command line to enable password authentication.
GTK+
- Support for mouse wheel.
Monitor
- New HMP command cpu-add for CPU hotplug
- New QMP commands object-add and object-del for generic object hotplug (enables virtio-rng hotplug)
- New HMP commands object_add and object_del for generic object hotplug
- Improved command-line completion for device_add and device_del (as well as the new commands object_add and object_del)
- dump-guest-memory can produce kdump compressed format.
Migration
- Various fixes for migration with qcow2 images. Migration with qcow2 images is now reliable.
- Reduction (or elimination) of guest stalls during migration
- RDMA migration is now activated with the "rdma:HOST:PORT" syntax (used to be "x-rdma:HOST:PORT")
Network
- New backend "netmap" on BSD systems
Block devices in system emulation
- Live snapshot merge (...-commit) can be used to merge the active layer of an image into one of the snapshots
- Live and offline snapshot merge ("commit") will resize the destination image if necessary.
- The iSCSI and Gluster backends support snapshot merge.
- "query-block-stats" provides statistics for all images in the chain of backing files
- node-name, query-named-block-nodes: external snapshot, resize, change password (???)
- Experimental support in virtio-blk for M:N threading model: if you specify x-dataplane=on, you can also create I/O threads with "-object iothread" and point virtio-blk devices to the desired iothread with the "x-iothread" property. Properties of the running iothreads can be queried with the QMP command "query-iothreads".
Various
- -name now supports a "debug-threads" suboption. With this option, QEMU will assign names to each threads in order to simplify debugging. Note that thread names do not constitute a stable API.
- Improved coverage for "make check".
- Lots of bugfixes reported by Coverity (mostly for non-x86 guests).
Block devices and tools
- Network block drivers (curl, iscsi, rbd, ssh, glusterfs) can be built as shared library modules with "--enable-modules" configure option.
- When the destination of "qemu-img convert" is a raw device, qemu-img can ask the host storage to "discard" it instead of writing zeroes
- "qemu-img convert" can be passed a "-S 0" option to create a fully allocated image
- "qemu-img convert" can use hints from the host storage to speed up the transfer
- "qemu-img convert", "qemu-img create", "qemu-img amend" support multiple occurrences of the "-o" command line option.
- The libcurl interface had bitrotted and has been fixed.
- A new "quorum" driver for redundant storage is supported.
- QEMU is able to operate even if the underlying storage requires the buffer size to be a 4K multiple. This is the case for 4K-native disks (with cache=none or when accessed through iscsi:// URLs) and some raw devices. When this happens, QEMU emulates unaligned accesses using read-modify-write cycles if necessary. On properly configured guests newer than ~2009 there should be no performance penalty.
- qemu-io supports command editing via readline
- Pseudo-protocols like blkdebug and blkverify can be nested arbitrarily
- Improved error messages for many operations
- QEMU can access NFSv3 shares directly from userspace using libnfs. The share must be configured to allow access from high-numbered ports
TCG
- Improvements to the TCG optimizer make it produce faster code
- QEMU can use getauxval to detect the host instruction set for PPC64, ARM, s390
- QEMU supports generating MOVBE, ANDN, instructions in the x86 backend
- Support for AArch64 disassembling (requires a C++ compiler to be installed on the host)
Tracing
- LTTng 2.x is now supported
User-mode emulation
- Support for AArch64 user-mode emulation, including all the user-accessible instructions except for the optional CRC and crypto extensions
- Target specific minimum kernel versions, --enable-uname-release configure parameter will be removed in next release.
- Support for timer system calls: timer_create, timer_settime, timer_gettime, timer_getoverrun and timer_delete.
- Support for accept4 socketcall
- Support for sendmmsg/recvmmesg system calls
- Bug fixes