https://wiki.qemu.org/api.php?action=feedcontributions&user=A.tarasenko&feedformat=atomQEMU - User contributions [en]2024-03-19T12:10:34ZUser contributionsMediaWiki 1.39.1https://wiki.qemu.org/index.php?title=ChangeLog/1.5&diff=3624ChangeLog/1.52013-05-21T17:55:38Z<p>A.tarasenko: </p>
<hr />
<div>== General ==<br />
<br />
* The default for log output enabled via the '-d' command line switch is now standard error rather than a file. You can obtain the previous behaviour using the '-D' command line switch to specify a file to send the logging to.<br />
* QEMU now uses ''poll'' rather than ''select'', and thus does not have any restriction on the number of open file descriptors.<br />
<br />
== System emulation ==<br />
<br />
=== Device emulation ===<br />
<br />
==== Audio ====<br />
* The --audio-card-list configure option is not used anymore. Instead, you can modify default-configs/pci.mak (for the PCI soundcards AC97, HDA and ES1370) and default-configs/sound.mak (for the ISA soundcards) before running "make".<br />
* The "shortcut" -soundhw option is now available for all targets that have a PCI bus.<br />
<br />
==== Device assignment ====<br />
* VFIO supports primary VGA passthrough using the experimental "x-vga=on" option. The following devices seem to work: Nvidia 8400gs, 73001e, NVS290; ATI/AMD Radeon HD5450 and HD7850.<br />
* VFIO devices support the bootindex= property to override the default boot order for assigned PCI devices.<br />
<br />
==== USB ====<br />
* Experimental support for USB 3.0 streams, both in the nec-usb-xhci controller and in the usb-uas USB-attached SCSI device emulation.<br />
* USB device passthrough has been rewritten to use libusb. For Linux, the two backends can be compiled in a single QEMU executable (if libusb is enabled, usb-host-linux will be the legacy implementation, usb-host will be the libusb-based one; if libusb is disabled, usb-host will be the legacy implementation). For BSD, it has to be chosen at configure time using --enable/disable-libusb (the default is to use libusb if it is available, otherwise use the legacy implementation).<br />
<br />
==== SCSI ====<br />
* QEMU can now emulate the VMware PVSCSI device using "-device pvscsi".<br />
* QEMU can now use tcm_vhost, a virtio-scsi device model based on the Linux-iSCSI implementation of SCSI.<br />
<br />
==== Network cards ====<br />
* QEMU can now emulate the VMware paravirtualized network card using "-device vmxnet3".<br />
<br />
=== ARM ===<br />
* This release has initial support of KVM for the ARM architecture. This requires a 3.9 or better Linux kernel and a Cortex-A15 CPU.<br />
* The Zynq board provides a SD host controller interface.<br />
* The PCI controller model for VersatilePB and Realview boards has been significantly improved in functionality (including MMIO BAR support and a correct PCI IRQ mapping). Note that Linux kernels currently do not take advantage of this; however we autodetect kernels that expect the behaviour of an old broken QEMU and fall back to that. (The old IRQ behaviour can be forced with "-global versatile_pci.broken-irq-mapping=1" if absolutely necessary.)<br />
* Incorrect handling of the SRS instruction in Thumb mode has been fixed.<br />
* Performance of TCG emulation of ARM targets is improved over previous releases.<br />
* Migration and vm save/load now works correctly on the vexpress-a15 and vexpress-a9 models.<br />
<br />
=== PPC ===<br />
* Various improvements to TCG code generation<br />
* KVM synchronizes more state<br />
* Fix a few issues that blocked Mac OS X from working (still not 100% there though!)<br />
* Refactoring and improvement of soft mmu emulation for book3s<br />
* Implement various new instructions for ISA 2.05 and ISA 2.06 compatibility (-cpu POWER7)<br />
* Implement support for KVM based e500 family watchdog<br />
<br />
=== s390x ===<br />
* Various accuracy fixes for device emulation<br />
* Faster I/O hypercalls<br />
* Add firmware to boot from virtio-ccw disks<br />
* Guest kernel panics are notified to the host<br />
<br />
=== SPARC ===<br />
* Improve sun4u interrupt mapping, so that multiple PCI devices can be used simultaneously<br />
<br />
=== x86 ===<br />
* x86 supports emulation of a TPM (Trusted Platform Module) on machines that have a hardware TPM<br />
* Various speedups in TCG emulation of x86<br />
* The iPXE ROMs that are distributed with QEMU support EFI<br />
* TCG supports the SSE4.1, SSE4.2, PCLMULQDQ, AES-NI, BMI and ADX extensions.<br />
* A paravirtual device is included that lets the guest notifies kernel panics to the host.<br />
* CPU hot-add support with cpu-add QMP command. More details [[Features/CPUHotplug#cpu-add_interface|Features/CPUHotplug]].<br />
* new CPU properties "feature-words" and "filtered-features" to allow introspection of supported and not supported CPU features.<br />
** For reference and examples of how the new properties can be used by libvirt and other components, see: http://wiki.qemu.org/Features/CPUModels#Interfaces.2Frequirements_for_libvirt<br />
<br />
=== QMP ===<br />
* QEMU now generates a DEVICE_DELETED event when the guest acknowledges a device hot-unplug operation.<br />
* Much better handling for non-ASCII codepoints in JSON strings<br />
<br />
=== Character devices ===<br />
* Character devices gained support for flow control. More details in [[Features/ChardevFlowControl]]<br />
* All kinds of character devices can now be hot-plugged. Character device hotplug is also supported from the "human" monitor.<br />
<br />
=== Block devices ===<br />
* IDE and SCSI disks always have the ability to issue "discard" (aka TRIM or UNMAP) commands. However, by default "discard" commands are silently ignored as they can cause performance degradation and fragmentation. To enable them, the "-drive" option now supports a "discard" suboption; the default value is "ignore" (or its synonym "off"), and the other valid value is "unmap" (or "on").<br />
* Sheepdog drives can also be specified with URIs.<br />
* iSCSI disks support on-line resizing using block_resize. Similar to block devices, the resize has to be done first outside QEMU.<br />
* Various performance improvements in qcow2 internal snapshots (savevm).<br />
* The NBD backend has improved latency.<br />
* qemu-nbd can now skip image format probing using the -f/--format command-line option.<br />
* VHDX (MS Hyper-V) image format has initial read-only support. Dynamic and fixed sized disks are supported, but not differencing images (e.g. VHDX images with a backing file). Read-only is strictly enforced, and the 'readonly=on' option must be used for any VHDX images.<br />
* Secure Shell (ssh) support. Access remote disks over ssh using <code>qemu -drive file=ssh://host/path/to/file</code><br />
<br />
=== Live Migration ===<br />
* Further improvements in throughput (up to +130%: 4.2 Gbps in 1.5 vs 1.8 Gbps in 1.4) and latency.<br />
<br />
=== User interface ===<br />
* QEMU now provides a GTK+ interface. The interface uses the VTE library to provide better terminal emulation for serial consoles and the monitor.<br />
* A new VNC extension has been added to communicate LED state changes for the keyboard.<br />
<br />
=== VNC ===<br />
* Websocket connections can now be encrypted with TLS.<br />
<br />
== User-mode emulation ==<br />
* Threaded programs are now more stable, though still experimental.<br />
<br />
== Guest agent ==<br />
* New commands in qemu-ga let the host put CPUs online/offline with help from the guest OS (Linux only)<br />
<br />
== Host support ==<br />
* QEMU is now a lot faster on Windows hosts than in previous versions<br />
* libcacard has been ported to Windows.<br />
<br />
=== Known issues ===<br />
* The GTK+ backend does not compile on BSD systems (including Mac OS X). This will likely be fixed in a later stable update.</div>A.tarasenkohttps://wiki.qemu.org/index.php?title=ChangeLog/1.1&diff=2972ChangeLog/1.12012-05-22T17:31:28Z<p>A.tarasenko: /* System emulation */</p>
<hr />
<div>== System emulation ==<br />
<br />
=== All targets ===<br />
* qdev properties of type hex8 and hex32 used to accept hexadecimal values not prefixed with "0x"; the prefix is mandatory starting with this version. These properties are: iobase, membase, io_base for all devices that support the properties; vram_size for sysbus-g364 and SUNW,tcx; version for sb16 and iommu; ctl_iobase and data_iobase for fw_cfg; readback for debugcon; elcr_addr and elcr_mask for i8259.<br> PCI addresses can still be addressed with a pair of hexadecimal device and function without a "0x" prefix.<br />
* -kernel, -initrd and -append are now aliases for suboptions of -machine (for example -machine kernel=foo), and as such they are also available with -readconfig.<br />
* PCI-to-PCI bridges are supported [...]<br />
* PCI emulation includes a standrd hot-plug controller [...]<br />
<br />
=== ARM ===<br />
* The syborg machine type has been removed since the Symbian Virtual Platform is no longer relevant with the disbanding of Symbian.<br />
* A device tree can be passed to the kernel using -dtb option (or alternatively ''-machine dtb=...'').<br />
* New 'nuri' and 'smbkc210' models of Samsung Exynos4210 based devboards<br />
* New 'highbank' model of the Calxeda Highbank<br />
* New 'vexpress-a15' model of the Versatile Express Cortex-A15<br />
<br />
=== PowerPC ===<br />
* The Bamboo machine now works with TCG, before only KVM was able to execute 440 code.<br />
* Pseries handles PCI, allowing for virtio devices with -M pseries<br />
* Pseries works with PR KVM allowing for -M pseries -enable-kvm to work on G5s<br />
* We can now emulate e500mc cores, but no e500mc based board is emulated yet. You need to use -M mpc8544ds and a special guest kernel.<br />
* Timers on ppc405 now work and don't segfault QEMU<br />
<br />
=== S/390 ===<br />
* Added support to -kernel to allow booting of ELF binaries<br />
* Fixed -kernel to allow booting of newer guest kernels<br />
* Devices can now be hotplug add'ed (remove is not there yet)<br />
* Rebooting a virtual machine now works<br />
<br />
=== SPARC ===<br />
* Added interrupt controller and support of vector interrupts<br />
* Fixed handling 32 bit instructions on a sparc64 CPU<br />
* Fixed block load instructions regression happened in 1.0 release<br />
* Fixed BCD mask in m48t59 emulation, so that Solaris 2.5.1 doesn't hang on sun4m emulation when day of month >21.<br />
* Fixed initrd loading in qemu-system-sparc64.<br />
<br />
=== x86 ===<br />
* NMIs are correctly injected through the LAPIC (rather than sent directly to the guest CPU) and respect the LINT1 mask, thus fixing kdump.<br />
* The -rtc-td-hack option is now available as a qdev property (''-global mc146818rtc.lost_tick_policy=slew'') and as such can be specified in a -readconfig configuration file.<br />
* When the system is suspended to RAM, QEMU will now stop executing the guest until a wakeup event occurs. Implemented wakeup events include key presses, mouse button presses, RTC alarm, ACPI timer expiration, serial console input (off by default; enable with ''-global isa-serial.wakeup=1''), and the ''system_wakeup'' monitor command.<br />
* KVM can optionally use kernel-based emulation of the local APIC, IOAPIC, i8259 PIC and i8254 PIT. This is supported with the ''-machine ...,kernel_irqchip=on'' command-line option. MSI is not supported yet when using the kernel_irqchip option.<br />
* Emulation of a PC System Flash device. The feature is enabled by adding a pflash drive. This feature is not supported when KVM is enabled. See [[Features/PC System Flash]] for more information.<br />
* KVM guests support Hyper-V enlightenments. These are enabled by the -cpu features hv_spinlocks, hv_relaxed and hv_vapic.<br />
<br />
=== Device emulation ===<br />
<br />
* The virtio-scsi device is now supported by QEMU. The guest driver will be supported in Linux starting at version 3.4.<br />
* QEMU now includes experimental support for USB 3.0 (xHCI).<br />
<br />
=== Audio devices ===<br />
* Audio devices can now use volume control capabilities exposed by the PulseAudio and Spice backends. (Note: all audio devices do not expose their volume control unless --enable-mixemu is turned on).<br />
<br />
=== Block devices ===<br />
<br />
* QEMU's NBD client implementation and the qemu-nbd server both fully support asynchronous I/O.<br />
* The new QMP command ''transaction'' can be used to perform a set of multiple snapshots atomically, rolling back to the original images if there is a problem along the way. See [[Features/SnapshotsMultipleDevices]] for more information.<br />
* The new monitor command ''block_stream'' lets guest copy data from the backing file to the current image while the guest is running. This lets users enables quick provisioning of new virtual machines using shared remote storage, and lets the guest transition incrementally to fast local storage. An alternative to streaming is the ''copy-on-read'' option of the -drive command-line option, which only transfers data when the guest needs it.<br />
* An experimental extension of the qcow2 file format has been introduced. With the implementation as of QEMU 1.1, the most important addition is zero clusters, which allows image streaming and copy-on-read to leave images sparse if the backing file they are copying from is sparse. In order to enable the extension, use ''qemu-img create -f qcow2 -o compat=1.1 <filename> <size>'' for creating the image. Note that older versions of QEMU won't be able to read such images.<br />
<br />
=== Network devices ===<br />
<br />
* QEMU supports a new type of network device, ''bridge'' (used with ''-net bridge'' or ''-netdev bridge''). The new type is similar to ''tap'', but uses a helper program instead of a script to attach the device to a bridge. The helper program can then be installed as ''setuid''. The helper program supports a simple ACL and configuration mechanism, see [http://git.qemu.org/?p=qemu.git;a=commit;h=bdef79a2994d6f0383e07e9597675711662b3031 the commit message] and [[Features/HelperNetworking|feature page]] for documentation.<br />
<br />
=== Live Migration, Save/Restore ===<br />
<br />
* Live migration (or save/restore) from QEMU releases prior to 0.13 to QEMU 1.1 is not supported<br />
* Live migration supports IPv6. IPv6 addresses can be expressed as ''tcp:host:port''. Brackets around a numeric host address are required if a port is also specified, otherwise they can be omitted.<br />
<br />
== Guest agent ==<br />
<br />
* qemu-ga has been ported to Windows.<br />
* Interfaces added for suspending guests to disk/ram, and retrieving information about network interfaces<br />
* Interfaces for filesystem freeze have been hardened, and no longer depend on guest agent runtime state to determine whether a system is currently frozen.<br />
* An easier to use reset mechanism has been added: guest-sync-delimited<br />
<br />
== Host support ==<br />
<br />
* ARM hosts are now supported again (they were broken in 1.0)<br />
* Sockets and SLIRP on Windows hosts was broken in 0.14 and works again<br />
* 64-bit Windows hosts are now supported.<br />
<br />
== User-mode emulation ==<br />
<br />
* User-mode emulation can provide some information from the /proc filesystem.<br />
* On 64-bit hosts user-mode emulation now defaults to reserving 0xf7000000 bytes of address space for the guest. This significantly reduces the likelihood of QEMU having to fail a guest mmap() request when there is still memory available. This reservation can be overridden with the -R command line option.<br />
<br />
== Build dependencies ==<br />
<br />
* Building QEMU requires glib 2.12 on POSIX systems, and glib 2.20 on Win32 systems.</div>A.tarasenkohttps://wiki.qemu.org/index.php?title=ChangeLog/0.15&diff=1563ChangeLog/0.152011-07-27T08:27:18Z<p>A.tarasenko: </p>
<hr />
<div>= 0.15.0 =<br />
== Targets ==<br />
* New targets added: LatticeMico32 and UniCore32.<br />
=== ARM ===<br />
* Many bugs in Neon and other ARMv6 and ARMv7 instructions have been fixed<br />
* Floating point instructions now generally handle NaNs and floating point status flags correctly<br />
* Dummy implementations of cp15 performance counters and cp14 debug registers mean we can boot more recent Linux kernels that probe for these features<br />
* SA-1110/SA-1100 support has been added<br />
* New machine models: ARM Versatile Express (machine "vexpress-a9"), Sharp Zaurus SL-5500 (machine "collie")<br />
<br />
=== MIPS ===<br />
* Add me<br />
<br />
=== SH4 ===<br />
* Add me<br />
<br />
=== PPC ===<br />
* Add me<br />
<br />
=== s390x ===<br />
* Add me<br />
<br />
=== SPARC ===<br />
* Sparc32: Improvements to OpenBIOS make Solaris 8 boot possible.<br />
* Sparc64: fix sdivx and udivx instructions, enabling booting HelenOS up to the command prompt [http://repo.or.cz/w/qemu.git/commit/8e91ed308062e742610e4cfdfd4a09bc045ead45 (commit)].<br />
* Minor Sparc32 and Sparc64 fixes.<br />
<br />
== Hosts ==<br />
<br />
=== ARM ===<br />
* Support QEMU's host C code being compiled in Thumb mode (as some gccs do by default)<br />
<br />
=== MIPS ===<br />
* Add me<br />
<br />
=== IA64 ===<br />
* Add me<br />
<br />
==KVM==<br />
<br />
===Common===<br />
* Countless fixes ported over from qemu-kvm, core is now shared with that tree, i.e. has the same quality<br />
* Pimped up threading model, now fully synchronized with qemu-kvm tree<br />
* Removed dependency on external kernel headers, all supported KVM features are now built into the binary<br />
<br />
===x86===<br />
* Paravirtual kvmclock fixes<br />
* Stable guest TSC across migration<br />
* Support for SMEP CPU feature<br />
* Support for VIA CPU features<br />
* Reworked & fixed MCE support<br />
<br />
===PPC===<br />
* ...<br />
<br />
===s390x===<br />
* ...<br />
<br />
== Devices ==<br />
=== IDE / AHCI ===<br />
* Add me<br />
<br />
=== SCSI ===<br />
* Add me<br />
<br />
=== USB ===<br />
* Add me<br />
<br />
=== virtio ===<br />
* Add me<br />
<br />
==== virtio-serial ====<br />
* Various fixes for hot-unplug of ports<br />
* Disallow generic ports at id 0: port number 0 is reserved for console ports for backward compatibility; '-device virtserialport,nr=0' is now not allowed.<br />
* Allow re-use of a chardev after a port using it gets unplugged<br />
* Add trace events<br />
<br />
=== PCI/PCI Express ===<br />
* Add me<br />
<br />
=== Sound ===<br />
* Add me<br />
<br />
=== Video ===<br />
* Add me<br />
<br />
===RTC===<br />
* MC146818 (for PCs): Follow host clock resets to the past immediately (instead of freezing the clock)<br />
<br />
== Block Layer ==<br />
* Added missing -drive options to the man page<br />
<br />
=== Block Drivers ===<br />
==== qcow2 ====<br />
* Add me<br />
<br />
==== qed ====<br />
* Support for growing images with '''qemu-img resize''' [http://repo.or.cz/w/qemu.git/commitdiff/77a5a0001bd9eaee9da7dc8f0b69702d56b0cc67 (commit)]<br />
* Periodically flush and clear need check bit to reduce chance of leaving image files dirty on power failure [http://repo.or.cz/w/qemu.git/commitdiff/6f321e93abb27b4e7ceb228b4204aa304e95daad (commit)]<br />
* Fix consistency check on 32-bit hosts [http://repo.or.cz/w/qemu.git/commitdiff/19dfc44a94f759848a0f7de7378b2f8b9af6b5d0 (commit)]<br />
<br />
=== CDROM Emulation ===<br />
* Many fixes to comply with ATAPI specification<br />
* GET_EVENT_STATUS_NOTIFICATION: Implement 'media' subcommand that helps report tray open/close, media present/absent states to guests. Newer Linux guests (kernels 2.6.38+) rely on this command to revalidate discs.<br />
* Major code refactoring and cleanup<br />
<br />
==Networking==<br />
<br />
===User space (slirp)===<br />
* Fixed DHCP support in restrict (host-only) mode<br />
* Ping packet forwarding to external hosts via unprivileged ICMP sockets of Linux 3.0<br />
<br />
== Spice ==<br />
* Add me<br />
<br />
== QMP / Monitor ==<br />
* Support for two new QMP commands: inject-nmi [http://repo.or.cz/w/qemu.git/commitdiff/a404666457b54142d6cfe8302bcded9be4cda379 (commit)] and snapshot-blkdev-sync [http://repo.or.cz/w/qemu.git/commitdiff/d967b2f14f238c24264fa73d02e9b0dde0b19506 (commit)]<br />
* Fixed some issues with the JSON parser (several commits, first one [http://repo.or.cz/w/qemu.git/commitdiff/ef749d07e717ca38b7d8b525c81d6b04db5f16ed here])<br />
* Added the guest agent [http://repo.or.cz/w/qemu.git/commitdiff/e3d4d25206a13ca48936e4357a53591997ce6d57 (commit)]<br />
<br />
== Tracing ==<br />
* Make simpletrace.py a Python module for trace analysis scripts [http://blog.vmsplice.net/2011/03/how-to-write-trace-analysis-scripts-for.html (blog)], [http://repo.or.cz/w/qemu.git/commitdiff/59da66849215eccf1dce2154c84f217a3c39678b (commit)]<br />
* Make 'simple' backend thread-safe [http://repo.or.cz/w/qemu.git/commitdiff/0b5538c300a56c3cfb33022840fe0b4968147e7a (commit)]<br />
* Add tracetool --probe-prefix optional argument to prefix DTrace probe names [http://repo.or.cz/w/qemu.git/commitdiff/e323c93edf3abb67c37b8e08b78da4835880f12e (commit)]<br />
<br />
== Linux-user ==<br />
<br />
* Added support for ppoll, sched_{g,s}etaffinity, epoll, pselect6, prlimit64 syscalls<br />
* Add s390x and unicore32 linux-user targets<br />
* Fix loading binaries from Linux/sparc64 rootfs [http://repo.or.cz/w/qemu.git/commit/cf973e469bd9d47c0460347764c1315a6180e13c (commit)]<br />
* Numerous bugfixes<br />
<br />
== New build dependencies (mandatory and optional) ==<br />
* glib-2.0 (mandatory)<br />
* libcurl 7.15.4 or better (optional, required for CURL block driver support)<br />
* spice 0.6.0 or better (optional)<br />
<br />
== Other stuff ==<br />
* Xen support merged (http://blog.xen.org/index.php/2011/05/13/xen-support-upstreamed-to-qemu/)</div>A.tarasenko