ChangeLog/2.0: Difference between revisions
m (Prep is neither the machine name nor the acronym, change to PReP) |
|||
Line 125: | Line 125: | ||
* Support for sendmmsg/recvmmesg system calls | * Support for sendmmsg/recvmmesg system calls | ||
* Bug fixes | * Bug fixes | ||
== 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. | |||
* 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 |
Revision as of 13:02, 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
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.
- 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