ChangeLog/0.14: Difference between revisions
No edit summary |
|||
(33 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
= 0.14.1 = | |||
* Version 0.14.1 {{git|56a60dd6d619877e9957ba06b92d2f276e3c229d}} | |||
* virtio-blk: fail unaligned requests {{git|76c9b330e3cf1454f2661e6f01942b04e2d81ae1}} | |||
* qed: Fix consistency check on 32-bit hosts {{git|9b33410d3bdd40b6a289c6b79d40a96b129e22af}} | |||
* exit if -drive specified is invalid instead of ignoring the "wrong" -drive {{git|419f1c3503967d85d304d776a1af85b7780fed80}} | |||
* vhost: fix dirty page handling {{git|fc5c4a7a63d80af7f4862e4965dd4ffcaedbf69a}} | |||
* Do not delete BlockDriverState when deleting the drive {{git|22da30fc281c73e352aabe88af5e7714bf7d5cc0}} | |||
* vnc: tight: Fix crash after 2GB of output {{git|f8a4bf59fe40c0a01368673f7e5d530714f1aacc}} | |||
* lan9118: Ignore write to MAC_VLAN1 register {{git|b3d657bce4a99f7494a1b52ed14bd22b6a288e46}} | |||
* Don't allow multiwrites against a block device without underlying medium {{git|a0af597d00c27741a0bf99720209def055f45499}} | |||
* lsi53c895a: add support for ABORT messages {{git|d4b4ba03e86eeb697f04bf1173c29530e77e0ce5}} | |||
* virtio-pci: fix bus master work around on load {{git|6f162b368f6af3836c78c01d1dff299fc275367f}} | |||
* fix applesmc REV key {{git|b25a1bbcda04cc5b14e804f0c135e0e2708d6881}} | |||
* rbd: don't link with -lcrypto {{git|3d19c4e338e3281cf91bf29f32e8624bda3cc14c}} | |||
* net: Add the missing option declaration of "vhostforce" {{git|2288eb3af2506a6950a6e3993c0e0cd0b0ad212b}} | |||
* lsi53c895a: Update dnad when skipping MSGOUT bytes {{git|ecebecffe3cbf73bd1a02148c186c0611a68b9b2}} | |||
* Revert "prep: Disable second IDE channel, as long as ISA IDE emulation doesn't support same irq for both channels" {{git|6f9cace17abb630e9a8f82e36d94a04f66983c7c}} | |||
* isa-bus: Remove bogus IRQ sharing check {{git|57c864b1f32986116947d5e94218ec623ce393de}} | |||
* virtio-net: Fix lduw_p() pointer argument of wrong size {{git|4b35dfea68539b9737749bf0e70a9dd4d253544c}} | |||
* hw/sd.c: Add missing state change for SD_STATUS, SEND_NUM_WR_BLOCKS {{git|cdd8152e56422d37e0d38454552bac5bc8ce4838}} | |||
* vnc: Fix fatal crash with vnc reverse mode {{git|74b121a007c52b435870def4b1f1e6c42042bf51}} | |||
* qemu-char: Check for missing backend name {{git|8d610b6ba2b36bbe0159362556455b61c6566526}} | |||
= 0.14.0 = | = 0.14.0 = | ||
== Targets == | == Targets == | ||
=== | === ARM === | ||
* Most of the changes are related to bug fixes and improvements to match what the real hardware does. For now there is no new board or CPU. [http://git.qemu.org/qemu.git/log/?h=stable-0.14&qt=grep&q=target-arm (list of commits)] | |||
=== MIPS === | |||
* Host CPU consumption for idle guests {{git|4cdc1cd137e0b98766916a7cdf2d5a9b3c6632fa}} | |||
* Timer fixes {{git|b1dfe6437c776f6441cf8b71c706f32f2456c530}} {{git|e027e1f075afe36698ce55d86f01b7817707c8b6}} {{git|55807224561b9ac278bb65960b6c12666fd30db9}} | |||
* FPU improvements {{git|084d19ba718a08d434dc44a83ff01f3152d59635}} | |||
=== SH4 === | |||
* Various bug fixes and improvements including [http://git.qemu.org/qemu.git/log/?h=stable-0.14&qt=grep&q=sh4 (list of commits)] | |||
** SM501 2D engine copyrect support, needed to boot recent kernels {{git|07d8a50cb0e096c5cdc5a81b8030e40833664dd3}} | |||
** MMU mmaped TLB access, needed to boot recent kernels {{git|c0f809c46aa271f29a9e6268cdeda1f21301a8ef}} | |||
** Floating point exceptions and correct NaN support. | |||
=== PPC === | === PPC === | ||
* Fix running recent PPC64 kernels {{git|f844c817d726cd2bdb431aa41c8217891ede2eaf}} | |||
* New maintainer: Alexander Graf {{git|42a876582906b1765db1c97152c967bc15401f84}} | |||
* Improve interrupt injection with KVM {{git|fc87e185302a96c2675a1c3a86ca47c6a2d657ff}} | |||
* Enable PV enabled guests for speedup with KVM {{git|419ef5f1c6a9614e8ddcb0b0f826de692e7e4a43}} {{git|45024f094c223e8096f366520414cdf1a74dbff3}} | |||
* Floating point fixes | |||
* Add a ppc-440x5 Xilinx model {{git|95070372f7477f44add9af9b55970ae1b92c3100}} | |||
* Add a virtex5 ml507 refdesign board for ppc-440x5 {{git|2c50e26efdb7e405ecacf89e6a57a60179226dd8}} | |||
* BookE MMU emulation improvements {{git|a586e548fb41afa21291bcc96f0a657d5ceaad59}} {{git|999fa40e431626121cdee7d244aadfd0c8f2597b}} | |||
=== s390x === | |||
* No news, business as usual. | |||
=== SPARC === | |||
* Fix div(cc) and sdiv(cc) instruction emulation, fixes Xorg crash in the guest {{git|0fcec41eec0432c77645b4a407d3a3e030c4abc4}} | |||
== Hosts == | |||
=== ARM === | === ARM === | ||
* Fix random crashes {{git|c69806ab82760a2e5ca880d41e8786276c838152}} | |||
* Fix 64-bit big-endian targets support {{git|9a3abc21a61f95799c1f301b0b480a98a29fa0ff}} | |||
=== | === MIPS === | ||
* Fix random crashes {{git|d43ffce14023df871d6065eb864d1f41eb441f37}} | |||
=== | === IA64 === | ||
* Fix random crashes for 32-bit targets {{git|650a217a652a940c164d5a38cedc4d6671da88ce}} | |||
== Devices == | == Devices == | ||
=== IDE / AHCI === | === IDE / AHCI === | ||
* Added emulation layer for an ICH-9 [http://www.intel.com/technology/serialata/ahci.htm AHCI] controller (not yet stable). Tested with Linux, OpenBSD, Windows Vista and Windows 7. The AHCI emulation supports [http://en.wikipedia.org/wiki/Native_Command_Queuing NCQ], so multiple read or write requests can be outstanding at the same time.{{git|f6ad2e32f8d833c7f1c75dc084a84a8f02704d64}} | |||
** to use it, use the following command line snippet: -drive id=disk,file=<your image goes here>,if=none -device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0 | |||
=== SCSI === | === SCSI === | ||
* Various bug fixes, no new features. | |||
=== USB === | === USB === | ||
* Added USB support for remote wakeup, allowing the guest to suspend the USB bus when idle, which in turn reduces the CPU overhead of an idle machine. {{git|01eacab6e95267fd894d0c1013aa5bf55c320dc8}} {{git|9159f6798ebfe0cdcfd1d1fb91c2c08b6d95954a}} {{git|34239c7bc972735391ca84283f8c8ad908dc61ef}} {{git|ac57bbb614ace4f7b8b965562826a7f7fda00cdc}} | |||
* The USB subsystem also got a bunch of patches to prepare it for USB 2.0 support. | |||
=== virtio === | === virtio === | ||
* virtio-pci can use [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d34e6b175e61821026893ec5298cc8e7558df43a ioeventfd] for virtqueue notify. On systems that support KVM, the ioeventfd mechanism can be used to make virtqueue notify a lightweight exit by deferring hardware emulation to the iothread and allowing the VM to continue execution. This model is similar to how vhost receives virtqueue notifies. The result of this change is improved performance for userspace virtio devices. Virtio-blk throughput increases especially for multithreaded scenarios and virtio-net transmit throughput increases substantially. Read the commit message for more details. | * virtio-pci can use [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d34e6b175e61821026893ec5298cc8e7558df43a ioeventfd] for virtqueue notify. On systems that support KVM, the ioeventfd mechanism can be used to make virtqueue notify a lightweight exit by deferring hardware emulation to the iothread and allowing the VM to continue execution. This model is similar to how vhost receives virtqueue notifies. The result of this change is improved performance for userspace virtio devices. Virtio-blk throughput increases especially for multithreaded scenarios and virtio-net transmit throughput increases substantially. Read the commit message for more details. {{git|25db9ebe15125deb32958c6df74996f745edf1f9}} {{git|65d6dcbde84314c6d05a365a26a384f880a5c8fe}} | ||
* Various fixes and stabilization for live-migration: | * Various fixes and stabilization for live-migration: {{git|783e7706937fe15523b609b545587a028a2bdd03}} {{git|954773230484f5afeb675e9ff814c97e54e69e17}} {{git|1abeb5a65d515f8a8a9cfc4a82342f731bd9321f}} | ||
* Various virtio-net improvements: | * Various virtio-net improvements: | ||
** Make tx_timer timeout configurable | ** Make tx_timer timeout configurable {{git|f0c07c7c7b4fe4f9b63c88341fd32707def5a058}} | ||
** Limit number of packets sent per TX flush | ** Limit number of packets sent per TX flush {{git|e3f30488e5f802547b3a60e40cebaef3b4ec16a3}} | ||
** Introduce a new bottom half packet TX | ** Introduce a new bottom half packet TX {{git|a697a334b3c4d3250e6420f5d38550ea10eb5319}} | ||
** Fix cross-endianness support {{git|44b15bc5c65ab6b3103f508504e4adf8ee9902d7}} | |||
=== PCI/PCI Express === | === PCI/PCI Express === | ||
* Improved PCI Express support and functionalities with the implementation of: | * Improved PCI Express support and functionalities with the implementation of: | ||
**flr [http://www.pcisig.com/specifications/conventional/pci_30/ECN_Conventional_Adv_Caps_27Jul06.pdf (Function Level Reset)] | **flr [http://www.pcisig.com/specifications/conventional/pci_30/ECN_Conventional_Adv_Caps_27Jul06.pdf (Function Level Reset)] {{git|0ead87c8debaf12bf4e8cf5130e4e7fb83dbf126}} | ||
**aer [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/PCI/pcieaer-howto.txt;h=26d3d945c3c21aa965cd9b48c49cc42abf09df3f;hb=HEAD (Advanced Error Reporting)] and other improvements | **aer [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/PCI/pcieaer-howto.txt;h=26d3d945c3c21aa965cd9b48c49cc42abf09df3f;hb=HEAD (Advanced Error Reporting)] and other improvements {{git|1a1ea6f093eb8cf7c01788bc3708ba7003815563}} {{git|34e65944c0351fabcd82aa8c85018980c7e87bff}} {{git|247c97f3f5ab0dae60778a2dea438bfed5c69e68}} {{git|d33d9156fdffb87c99564c9630023da52c66f37a}} {{git|61620c2fff7dda789dbba513c18f534c0062062b}} {{git|a158f92fa78b1e87e5d196b72b750fedefb7b43e}} {{git|09b926d44674cbcf198425a5b8255e3cacb398ae}} {{git|c3f33667a64a6de0b92106c862247d97d81490ef}} {{git|2b3cb353e7af7a90eec22ba9720dcef2a80c7f6f}} {{git|5f47c187d992d5147397ddd5323c732d3d39cb8f}} {{git|513691b7ff20262efe9aafb85c8dd4615588ad48}} | ||
**A new monitor command to inject errors into the PCI bus: '''pcie_aer_inject_error''' | **A new monitor command to inject errors into the PCI bus: '''pcie_aer_inject_error''' {{git|2ae63bda50ec864a3e61d375b53c8e453ad50140}} | ||
* Implementation of [http://en.wikipedia.org/wiki/Message_Signaled_Interrupts Message Signaled Interrupts] (MSI/MSI-X) support | * Implementation of [http://en.wikipedia.org/wiki/Message_Signaled_Interrupts Message Signaled Interrupts] (MSI/MSI-X) support {{git|e4c7d2aef899780f9b9b86343bca4ac34c9e252f}} | ||
* Separation of the PCI bridge code from the main PCI code. | * Separation of the PCI bridge code from the main PCI code. {{git|cfb0a50a06825a0bee349cae3fa94f96242e83a5}} | ||
=== Sound === | === Sound === | ||
* New Intel HD Audio support | * New Intel HD Audio support {{git|d61a4ce8f01ac9f1810380e043db467d536eeb6b}}, adding three new devices: | ||
** intel-hda: Intel HD Audio Controller, the PCI device. | ** intel-hda: Intel HD Audio Controller, the PCI device. | ||
** hda-duplex: HDA Codec. Attaches to the HDA bus. Supports 16bit stereo, rates 16k -> 96k, playback, recording and volume control (with CONFIG_MIXEMU=y). | ** hda-duplex: HDA Codec. Attaches to the HDA bus. Supports 16bit stereo, rates 16k -> 96k, playback, recording and volume control (with CONFIG_MIXEMU=y). | ||
Line 46: | Line 106: | ||
** DOS (mpxplay) works. | ** DOS (mpxplay) works. | ||
** WinXP doesn't work. | ** WinXP doesn't work. | ||
=== Real Time Clock === | |||
* Fix binary/BCD mode switch {{git|51e08f3e4b8a3b6d27fde9a9e75c8fa32eaa72d0}} | |||
=== Video === | |||
* Fix cirrus VGA crash with some guests {{git|92d675d1c1f23f3617e24b63c825074a1d1da44b}} | |||
* Fix curses big endian support {{git|9ae19b657ee20f4d03bdca8dbf367b932801ac93}} | |||
== Block Drivers == | == Block Drivers == | ||
=== qcow2 === | === qcow2 === | ||
* Added a writeback metadata cache. This improves performance of scenarios with lots of cluster allocations noticably (e.g. installation or after taking a snapshot), in some benchmarks by a factor of ten or more. Use cache=none or cache=writeback to take advantage from this change. | * Added a writeback metadata cache. This improves performance of scenarios with lots of cluster allocations noticably (e.g. installation or after taking a snapshot), in some benchmarks by a factor of ten or more. Use cache=none or cache=writeback to take advantage from this change. {{git|493810940bfaad0fd5dd9bfb79cdc89519f89588}} {{git|29c1a7301af752de6721e031d31faa48887204bd}} {{git|3de0a2944bdb3047dce275560631834bcb4afe22}} | ||
* Copy snapshots out of QCOW2 disk, eg: '''qemu-img convert -f qcow2 -O qcow2 -s snapshot_name src_img bck_img''' | * Copy snapshots out of QCOW2 disk, eg: '''qemu-img convert -f qcow2 -O qcow2 -s snapshot_name src_img bck_img''' {{git|51ef67270b1d10e1fcf3de7368dccad1ba0bf9d1}} | ||
* Zero-copy read and write operations | * Zero-copy read and write operations {{git|6f5f060b736cedc2d962114d20805fdd2889513a}} {{git|bd28f835652e396841bb73080a07bcc08fe21bf0}} | ||
* Other fixes and code cleanups: | * Other fixes and code cleanups: | ||
** qcow2: Invalidate cache after failed read | ** qcow2: Invalidate cache after failed read {{git|1c02e2a17104fe7fc11893125864dc0daf1e6d5b}} | ||
** block: Allow bdrv_flush to return errors | ** block: Allow bdrv_flush to return errors {{git|205ef7961f781496366e0a93a4ec621ad3724bd7}} | ||
** qcow2: Simplify image creation | ** qcow2: Simplify image creation {{git|a9420734b617be43d075c55b980479411807512e}} | ||
** qcow2: Fixes unaligned access on IA64 {{git|653df36bbe58e20258610bc74c5940c456b31084}} | |||
=== qed === | === qed === | ||
* Introduction of the QEMU Enhanced Disk (qed) image format. It is a disk image format that forgoes features found in qcow2 in favor of better levels of performance and data integrity. Due to its simpler on-disk layout, it is possible to safely perform metadata updates more efficiently. | * Introduction of the QEMU Enhanced Disk (qed) image format. It is a disk image format that forgoes features found in qcow2 in favor of better levels of performance and data integrity. Due to its simpler on-disk layout, it is possible to safely perform metadata updates more efficiently. {{git|75411d236d93d79d8052e0116c3eeebe23e2778b}} {{git|298800cae72eb2a549374189e87615b2b0b79262}} {{git|eabba580e6bb8d6b969c1368c6f90d72b4cde4f4}} | ||
* More information about qed: http://wiki.qemu.org/Features/QED | * More information about qed: http://wiki.qemu.org/Features/QED | ||
* Initial thread discussion: http://lists.nongnu.org/archive/html/qemu-devel/2010-09/msg00310.html | * Initial thread discussion: http://lists.nongnu.org/archive/html/qemu-devel/2010-09/msg00310.html | ||
=== ceph/rbd === | === ceph/rbd === | ||
* Introduction of the new ceph/rbd block driver. RBD is an block driver for the distributed file system Ceph. | * Introduction of the new ceph/rbd block driver. RBD is an block driver for the distributed file system Ceph.{{git|f27aaf4b531bc0eb4f3e1f7accf4931cae36db0d}} | ||
* More information about ceph: http://ceph.newdream.net/ | * More information about ceph: http://ceph.newdream.net/ | ||
=== nbd === | === nbd === | ||
* Improve qemu-nbd performance by 4400 %. This patch combines the reply header and payload send operation. | * Improve qemu-nbd performance by 4400 %. This patch combines the reply header and payload send operation. {{git|5fe16888d33af7aca0d613d888c161af68c755c3}} | ||
* Introduce NBD named exports. | * Introduce NBD named exports. {{git|1d45f8b542f6b80b24c44533ef0dd9e1a3b17ea5}} | ||
== Spice == | == Spice == | ||
Line 76: | Line 143: | ||
* New qxl device. qxl is a paravirtual graphics card. The qxl device is the bridge between the guest and the spice server (aka libspice-server). The spice server will send the rendering commands to the spice client, which will actually render them. The spice server is also able to render locally, which is done in case the guest wants read something from video memory. Local rendering is also used to support display over vnc and sdl. qxl is activated using '''-vga qxl'''. qxl supports multihead, additional cards can be added via ''''-device qxl'''. | * New qxl device. qxl is a paravirtual graphics card. The qxl device is the bridge between the guest and the spice server (aka libspice-server). The spice server will send the rendering commands to the spice client, which will actually render them. The spice server is also able to render locally, which is done in case the guest wants read something from video memory. Local rendering is also used to support display over vnc and sdl. qxl is activated using '''-vga qxl'''. qxl supports multihead, additional cards can be added via ''''-device qxl'''. | ||
* Relevant commits: | * Relevant commits: | ||
**spice: core bits | **spice: core bits {{git|29b0040be6371c403dae0fef7fec36b814e300e8}} | ||
**spice: add keyboard | **spice: add keyboard {{git|864401c2a709bcb66182c02372fb60a30055a4d7}} | ||
**spice: add mouse | **spice: add mouse {{git|78dd9ac1ca5130ae144a6abe8361a59483a5464b}} | ||
**spice: simple display | **spice: simple display {{git|a3e2226031496f479b5fe4a069ec1acd68a17e8d}} | ||
**spice: add tablet support | **spice: add tablet support {{git|869564a9c0f78b1972e1ac51e69cb2016af3b060}} | ||
**spice: tls support | **spice: tls support {{git|c448e8552b0f6135dabddf944a7110f929c08320}} | ||
**spice: make compression configurable. | **spice: make compression configurable. {{git|9f04e09e36e430dd57c69c88b0532e9dc5061a47}} | ||
**spice: add config options for channel security. | **spice: add config options for channel security. {{git|17b6dea08bd8c8484bc48dc67add236d2fe002b5}} | ||
**spice: add config options for the listening address | **spice: add config options for the listening address {{git|333b0eebcc8941b8453e837293eaa1191e967c25}} | ||
**spice: add misc config options | **spice: add misc config options {{git|84a23f251fe85768338434040257bb96cf555de8}} | ||
**spice: add audio | **spice: add audio {{git|3e31375378f40558f1ee7c258f3cc63c85596bfc}} | ||
**spice: add qxl device {{git|a19cbfb346425cc760ed19b4e746417df636b761}} | |||
**spice: add qxl device | **spice: connection events. {{git|6f8c63fbd7edc0b41c09f8f8e2d41a3a65464a43}} | ||
**spice: connection events. | |||
== QMP / monitor == | == QMP / monitor == | ||
* The work to facilitate the management of QEMU instances has been improved. | * TODO: QMP is now stable, except for error reporting? | ||
* The work to facilitate the management of QEMU instances has been improved. QMP has received various fixes. Now it is possible to call a traditional monitor command through QMP, in case your application depends on the output or the command is not yet ported to QMP. | |||
* New commands: | * New commands: | ||
** query-spice / info spice | ** query-spice / info spice {{git|cb42a870c3f5b38911b1428cb785dd702bc47d0f}} | ||
** human-monitor-command | ** human-monitor-command {{git|0268d97c51207f35a5a01239ad92ef2c35dcd5ba}} {{git|0268d97c51207f35a5a01239ad92ef2c35dcd5ba}} | ||
** | ** set_password {{git|7572150c189c6553c2448334116ab717680de66d}} | ||
** drive_del {{git|9063f81415f3518ef8206e74085c2a92c96890a0}} | |||
** block_resize command, allowing resizing of block devices while qemu is running {{git|6d4a2b3a47959f02e7f307f50396e70e8464f95e}}. For virtio-blk the size is updated automatically when this command is issued on the host. IDE is not supported. For SCSI devices the new size can be updated in Linux guests by doing the following shell command: | |||
echo > /sys/class/scsi_device/0:0:0:0/device/rescan | |||
== Tracing == | == Tracing == | ||
Line 102: | Line 172: | ||
* Documentation and tutorial: http://git.qemu.org/qemu.git/plain/docs/tracing.txt | * Documentation and tutorial: http://git.qemu.org/qemu.git/plain/docs/tracing.txt | ||
* Some relevant commits: | * Some relevant commits: | ||
** Add trace-events file for declaring trace events | ** Add trace-events file for declaring trace events {{git|94a420b170b3e997a185a4148accc87bdcd18156}} | ||
** Add a DTrace tracing backend targetted for SystemTAP compatibility | ** Add a DTrace tracing backend targetted for SystemTAP compatibility {{git|b3d08c029dd78ded5e35b74eaaa3d361821f83a7}} | ||
** Add LTTng Userspace Tracer backend | ** Add LTTng Userspace Tracer backend {{git|7e24e92a0615ee6be036743f2a035554d2ceac56}} | ||
** Add simple built-in tracing backend | ** Add simple built-in tracing backend {{git|26f7227bfe9a9abee3fe5190cbfc35dd876e06d9}} | ||
** Support for dynamically enabling/disabling trace events | ** Add stderr trace-event backend: {{git|320fba2a1f384e17db150d74540a2cf005eb47b5}} | ||
** Specify trace file name | ** Support for dynamically enabling/disabling trace events {{git|22890ab5e825601f4c3d5a1a6b4197904e5d1fee}} | ||
** Add trace-file command to open/close/flush trace file | ** Specify trace file name {{git|9410b56c82a107ed48c1f40aa6820c03094d97e9}} | ||
** Add trace-file command to open/close/flush trace file {{git|c5ceb523fa6fc168d3f51e306fee3def458e047e}} | |||
== Other stuff == | |||
* Extend '''-option-rom''' command to have additional parameter '''bootindex''' {{git|2e55e84282c545aeab8f5c9dd52a8073deaf3dbc}} | |||
* Little endian / big endian MMIO framework. Until now, most devices had special hacks to allow them to work on big and little endian systems (ppc / x86). With that framework, they should mostly work with both and not require and device specific hacks anymore. {{git|dd310534e3bf8045096654df41471fd7132887b2}} |
Latest revision as of 08:34, 12 October 2016
0.14.1
- Version 0.14.1 (commit
56a60dd6d619877e9957ba06b92d2f276e3c229d
) - virtio-blk: fail unaligned requests (commit
76c9b330e3cf1454f2661e6f01942b04e2d81ae1
) - qed: Fix consistency check on 32-bit hosts (commit
9b33410d3bdd40b6a289c6b79d40a96b129e22af
) - exit if -drive specified is invalid instead of ignoring the "wrong" -drive (commit
419f1c3503967d85d304d776a1af85b7780fed80
) - vhost: fix dirty page handling (commit
fc5c4a7a63d80af7f4862e4965dd4ffcaedbf69a
) - Do not delete BlockDriverState when deleting the drive (commit
22da30fc281c73e352aabe88af5e7714bf7d5cc0
) - vnc: tight: Fix crash after 2GB of output (commit
f8a4bf59fe40c0a01368673f7e5d530714f1aacc
) - lan9118: Ignore write to MAC_VLAN1 register (commit
b3d657bce4a99f7494a1b52ed14bd22b6a288e46
) - Don't allow multiwrites against a block device without underlying medium (commit
a0af597d00c27741a0bf99720209def055f45499
) - lsi53c895a: add support for ABORT messages (commit
d4b4ba03e86eeb697f04bf1173c29530e77e0ce5
) - virtio-pci: fix bus master work around on load (commit
6f162b368f6af3836c78c01d1dff299fc275367f
) - fix applesmc REV key (commit
b25a1bbcda04cc5b14e804f0c135e0e2708d6881
) - rbd: don't link with -lcrypto (commit
3d19c4e338e3281cf91bf29f32e8624bda3cc14c
) - net: Add the missing option declaration of "vhostforce" (commit
2288eb3af2506a6950a6e3993c0e0cd0b0ad212b
) - lsi53c895a: Update dnad when skipping MSGOUT bytes (commit
ecebecffe3cbf73bd1a02148c186c0611a68b9b2
) - Revert "prep: Disable second IDE channel, as long as ISA IDE emulation doesn't support same irq for both channels" (commit
6f9cace17abb630e9a8f82e36d94a04f66983c7c
) - isa-bus: Remove bogus IRQ sharing check (commit
57c864b1f32986116947d5e94218ec623ce393de
) - virtio-net: Fix lduw_p() pointer argument of wrong size (commit
4b35dfea68539b9737749bf0e70a9dd4d253544c
) - hw/sd.c: Add missing state change for SD_STATUS, SEND_NUM_WR_BLOCKS (commit
cdd8152e56422d37e0d38454552bac5bc8ce4838
) - vnc: Fix fatal crash with vnc reverse mode (commit
74b121a007c52b435870def4b1f1e6c42042bf51
) - qemu-char: Check for missing backend name (commit
8d610b6ba2b36bbe0159362556455b61c6566526
)
0.14.0
Targets
ARM
- Most of the changes are related to bug fixes and improvements to match what the real hardware does. For now there is no new board or CPU. (list of commits)
MIPS
- Host CPU consumption for idle guests (commit
4cdc1cd137e0b98766916a7cdf2d5a9b3c6632fa
) - Timer fixes (commit
b1dfe6437c776f6441cf8b71c706f32f2456c530
) (commite027e1f075afe36698ce55d86f01b7817707c8b6
) (commit55807224561b9ac278bb65960b6c12666fd30db9
) - FPU improvements (commit
084d19ba718a08d434dc44a83ff01f3152d59635
)
SH4
- Various bug fixes and improvements including (list of commits)
- SM501 2D engine copyrect support, needed to boot recent kernels (commit
07d8a50cb0e096c5cdc5a81b8030e40833664dd3
) - MMU mmaped TLB access, needed to boot recent kernels (commit
c0f809c46aa271f29a9e6268cdeda1f21301a8ef
) - Floating point exceptions and correct NaN support.
- SM501 2D engine copyrect support, needed to boot recent kernels (commit
PPC
- Fix running recent PPC64 kernels (commit
f844c817d726cd2bdb431aa41c8217891ede2eaf
) - New maintainer: Alexander Graf (commit
42a876582906b1765db1c97152c967bc15401f84
) - Improve interrupt injection with KVM (commit
fc87e185302a96c2675a1c3a86ca47c6a2d657ff
) - Enable PV enabled guests for speedup with KVM (commit
419ef5f1c6a9614e8ddcb0b0f826de692e7e4a43
) (commit45024f094c223e8096f366520414cdf1a74dbff3
) - Floating point fixes
- Add a ppc-440x5 Xilinx model (commit
95070372f7477f44add9af9b55970ae1b92c3100
) - Add a virtex5 ml507 refdesign board for ppc-440x5 (commit
2c50e26efdb7e405ecacf89e6a57a60179226dd8
) - BookE MMU emulation improvements (commit
a586e548fb41afa21291bcc96f0a657d5ceaad59
) (commit999fa40e431626121cdee7d244aadfd0c8f2597b
)
s390x
- No news, business as usual.
SPARC
- Fix div(cc) and sdiv(cc) instruction emulation, fixes Xorg crash in the guest (commit
0fcec41eec0432c77645b4a407d3a3e030c4abc4
)
Hosts
ARM
- Fix random crashes (commit
c69806ab82760a2e5ca880d41e8786276c838152
) - Fix 64-bit big-endian targets support (commit
9a3abc21a61f95799c1f301b0b480a98a29fa0ff
)
MIPS
- Fix random crashes (commit
d43ffce14023df871d6065eb864d1f41eb441f37
)
IA64
- Fix random crashes for 32-bit targets (commit
650a217a652a940c164d5a38cedc4d6671da88ce
)
Devices
IDE / AHCI
- Added emulation layer for an ICH-9 AHCI controller (not yet stable). Tested with Linux, OpenBSD, Windows Vista and Windows 7. The AHCI emulation supports NCQ, so multiple read or write requests can be outstanding at the same time.(commit
f6ad2e32f8d833c7f1c75dc084a84a8f02704d64
)- to use it, use the following command line snippet: -drive id=disk,file=<your image goes here>,if=none -device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0
SCSI
- Various bug fixes, no new features.
USB
- Added USB support for remote wakeup, allowing the guest to suspend the USB bus when idle, which in turn reduces the CPU overhead of an idle machine. (commit
01eacab6e95267fd894d0c1013aa5bf55c320dc8
) (commit9159f6798ebfe0cdcfd1d1fb91c2c08b6d95954a
) (commit34239c7bc972735391ca84283f8c8ad908dc61ef
) (commitac57bbb614ace4f7b8b965562826a7f7fda00cdc
) - The USB subsystem also got a bunch of patches to prepare it for USB 2.0 support.
virtio
- virtio-pci can use ioeventfd for virtqueue notify. On systems that support KVM, the ioeventfd mechanism can be used to make virtqueue notify a lightweight exit by deferring hardware emulation to the iothread and allowing the VM to continue execution. This model is similar to how vhost receives virtqueue notifies. The result of this change is improved performance for userspace virtio devices. Virtio-blk throughput increases especially for multithreaded scenarios and virtio-net transmit throughput increases substantially. Read the commit message for more details. (commit
25db9ebe15125deb32958c6df74996f745edf1f9
) (commit65d6dcbde84314c6d05a365a26a384f880a5c8fe
) - Various fixes and stabilization for live-migration: (commit
783e7706937fe15523b609b545587a028a2bdd03
) (commit954773230484f5afeb675e9ff814c97e54e69e17
) (commit1abeb5a65d515f8a8a9cfc4a82342f731bd9321f
) - Various virtio-net improvements:
- Make tx_timer timeout configurable (commit
f0c07c7c7b4fe4f9b63c88341fd32707def5a058
) - Limit number of packets sent per TX flush (commit
e3f30488e5f802547b3a60e40cebaef3b4ec16a3
) - Introduce a new bottom half packet TX (commit
a697a334b3c4d3250e6420f5d38550ea10eb5319
) - Fix cross-endianness support (commit
44b15bc5c65ab6b3103f508504e4adf8ee9902d7
)
- Make tx_timer timeout configurable (commit
PCI/PCI Express
- Improved PCI Express support and functionalities with the implementation of:
- flr (Function Level Reset) (commit
0ead87c8debaf12bf4e8cf5130e4e7fb83dbf126
) - aer (Advanced Error Reporting) and other improvements (commit
1a1ea6f093eb8cf7c01788bc3708ba7003815563
) (commit34e65944c0351fabcd82aa8c85018980c7e87bff
) (commit247c97f3f5ab0dae60778a2dea438bfed5c69e68
) (commitd33d9156fdffb87c99564c9630023da52c66f37a
) (commit61620c2fff7dda789dbba513c18f534c0062062b
) (commita158f92fa78b1e87e5d196b72b750fedefb7b43e
) (commit09b926d44674cbcf198425a5b8255e3cacb398ae
) (commitc3f33667a64a6de0b92106c862247d97d81490ef
) (commit2b3cb353e7af7a90eec22ba9720dcef2a80c7f6f
) (commit5f47c187d992d5147397ddd5323c732d3d39cb8f
) (commit513691b7ff20262efe9aafb85c8dd4615588ad48
) - A new monitor command to inject errors into the PCI bus: pcie_aer_inject_error (commit
2ae63bda50ec864a3e61d375b53c8e453ad50140
)
- flr (Function Level Reset) (commit
- Implementation of Message Signaled Interrupts (MSI/MSI-X) support (commit
e4c7d2aef899780f9b9b86343bca4ac34c9e252f
) - Separation of the PCI bridge code from the main PCI code. (commit
cfb0a50a06825a0bee349cae3fa94f96242e83a5
)
Sound
- New Intel HD Audio support (commit
d61a4ce8f01ac9f1810380e043db467d536eeb6b
), adding three new devices:- intel-hda: Intel HD Audio Controller, the PCI device.
- hda-duplex: HDA Codec. Attaches to the HDA bus. Supports 16bit stereo, rates 16k -> 96k, playback, recording and volume control (with CONFIG_MIXEMU=y).
- hda-output: HDA Codec without recording support. Subset of the hda-duplex codec. Use this if you don't want your guests access your mic.
- Usage: add '-device intel-hda -device hda-duplex' to your command line.
- Tested guests:
- Linux works.
- Win7 works.
- DOS (mpxplay) works.
- WinXP doesn't work.
Real Time Clock
- Fix binary/BCD mode switch (commit
51e08f3e4b8a3b6d27fde9a9e75c8fa32eaa72d0
)
Video
- Fix cirrus VGA crash with some guests (commit
92d675d1c1f23f3617e24b63c825074a1d1da44b
) - Fix curses big endian support (commit
9ae19b657ee20f4d03bdca8dbf367b932801ac93
)
Block Drivers
qcow2
- Added a writeback metadata cache. This improves performance of scenarios with lots of cluster allocations noticably (e.g. installation or after taking a snapshot), in some benchmarks by a factor of ten or more. Use cache=none or cache=writeback to take advantage from this change. (commit
493810940bfaad0fd5dd9bfb79cdc89519f89588
) (commit29c1a7301af752de6721e031d31faa48887204bd
) (commit3de0a2944bdb3047dce275560631834bcb4afe22
) - Copy snapshots out of QCOW2 disk, eg: qemu-img convert -f qcow2 -O qcow2 -s snapshot_name src_img bck_img (commit
51ef67270b1d10e1fcf3de7368dccad1ba0bf9d1
) - Zero-copy read and write operations (commit
6f5f060b736cedc2d962114d20805fdd2889513a
) (commitbd28f835652e396841bb73080a07bcc08fe21bf0
)
- Other fixes and code cleanups:
- qcow2: Invalidate cache after failed read (commit
1c02e2a17104fe7fc11893125864dc0daf1e6d5b
) - block: Allow bdrv_flush to return errors (commit
205ef7961f781496366e0a93a4ec621ad3724bd7
) - qcow2: Simplify image creation (commit
a9420734b617be43d075c55b980479411807512e
) - qcow2: Fixes unaligned access on IA64 (commit
653df36bbe58e20258610bc74c5940c456b31084
)
- qcow2: Invalidate cache after failed read (commit
qed
- Introduction of the QEMU Enhanced Disk (qed) image format. It is a disk image format that forgoes features found in qcow2 in favor of better levels of performance and data integrity. Due to its simpler on-disk layout, it is possible to safely perform metadata updates more efficiently. (commit
75411d236d93d79d8052e0116c3eeebe23e2778b
) (commit298800cae72eb2a549374189e87615b2b0b79262
) (commiteabba580e6bb8d6b969c1368c6f90d72b4cde4f4
) - More information about qed: http://wiki.qemu.org/Features/QED
- Initial thread discussion: http://lists.nongnu.org/archive/html/qemu-devel/2010-09/msg00310.html
ceph/rbd
- Introduction of the new ceph/rbd block driver. RBD is an block driver for the distributed file system Ceph.(commit
f27aaf4b531bc0eb4f3e1f7accf4931cae36db0d
) - More information about ceph: http://ceph.newdream.net/
nbd
- Improve qemu-nbd performance by 4400 %. This patch combines the reply header and payload send operation. (commit
5fe16888d33af7aca0d613d888c161af68c755c3
) - Introduce NBD named exports. (commit
1d45f8b542f6b80b24c44533ef0dd9e1a3b17ea5
)
Spice
- New support for the SPICE protocol. The project main focus is to provide high-quality remote access to QEMU virtual machines. More information about SPICE can be found at the project's web site: http://spice-space.org/
- New qxl device. qxl is a paravirtual graphics card. The qxl device is the bridge between the guest and the spice server (aka libspice-server). The spice server will send the rendering commands to the spice client, which will actually render them. The spice server is also able to render locally, which is done in case the guest wants read something from video memory. Local rendering is also used to support display over vnc and sdl. qxl is activated using -vga qxl. qxl supports multihead, additional cards can be added via '-device qxl.
- Relevant commits:
- spice: core bits (commit
29b0040be6371c403dae0fef7fec36b814e300e8
) - spice: add keyboard (commit
864401c2a709bcb66182c02372fb60a30055a4d7
) - spice: add mouse (commit
78dd9ac1ca5130ae144a6abe8361a59483a5464b
) - spice: simple display (commit
a3e2226031496f479b5fe4a069ec1acd68a17e8d
) - spice: add tablet support (commit
869564a9c0f78b1972e1ac51e69cb2016af3b060
) - spice: tls support (commit
c448e8552b0f6135dabddf944a7110f929c08320
) - spice: make compression configurable. (commit
9f04e09e36e430dd57c69c88b0532e9dc5061a47
) - spice: add config options for channel security. (commit
17b6dea08bd8c8484bc48dc67add236d2fe002b5
) - spice: add config options for the listening address (commit
333b0eebcc8941b8453e837293eaa1191e967c25
) - spice: add misc config options (commit
84a23f251fe85768338434040257bb96cf555de8
) - spice: add audio (commit
3e31375378f40558f1ee7c258f3cc63c85596bfc
) - spice: add qxl device (commit
a19cbfb346425cc760ed19b4e746417df636b761
) - spice: connection events. (commit
6f8c63fbd7edc0b41c09f8f8e2d41a3a65464a43
)
- spice: core bits (commit
QMP / monitor
- TODO: QMP is now stable, except for error reporting?
- The work to facilitate the management of QEMU instances has been improved. QMP has received various fixes. Now it is possible to call a traditional monitor command through QMP, in case your application depends on the output or the command is not yet ported to QMP.
- New commands:
- query-spice / info spice (commit
cb42a870c3f5b38911b1428cb785dd702bc47d0f
) - human-monitor-command (commit
0268d97c51207f35a5a01239ad92ef2c35dcd5ba
) (commit0268d97c51207f35a5a01239ad92ef2c35dcd5ba
) - set_password (commit
7572150c189c6553c2448334116ab717680de66d
) - drive_del (commit
9063f81415f3518ef8206e74085c2a92c96890a0
) - block_resize command, allowing resizing of block devices while qemu is running (commit
6d4a2b3a47959f02e7f307f50396e70e8464f95e
). For virtio-blk the size is updated automatically when this command is issued on the host. IDE is not supported. For SCSI devices the new size can be updated in Linux guests by doing the following shell command:
- query-spice / info spice (commit
echo > /sys/class/scsi_device/0:0:0:0/device/rescan
Tracing
- Introduction of platform-independent tracing, more information about it: http://wiki.qemu.org/Features/Tracing
- Documentation and tutorial: http://git.qemu.org/qemu.git/plain/docs/tracing.txt
- Some relevant commits:
- Add trace-events file for declaring trace events (commit
94a420b170b3e997a185a4148accc87bdcd18156
) - Add a DTrace tracing backend targetted for SystemTAP compatibility (commit
b3d08c029dd78ded5e35b74eaaa3d361821f83a7
) - Add LTTng Userspace Tracer backend (commit
7e24e92a0615ee6be036743f2a035554d2ceac56
) - Add simple built-in tracing backend (commit
26f7227bfe9a9abee3fe5190cbfc35dd876e06d9
) - Add stderr trace-event backend: (commit
320fba2a1f384e17db150d74540a2cf005eb47b5
) - Support for dynamically enabling/disabling trace events (commit
22890ab5e825601f4c3d5a1a6b4197904e5d1fee
) - Specify trace file name (commit
9410b56c82a107ed48c1f40aa6820c03094d97e9
) - Add trace-file command to open/close/flush trace file (commit
c5ceb523fa6fc168d3f51e306fee3def458e047e
)
- Add trace-events file for declaring trace events (commit
Other stuff
- Extend -option-rom command to have additional parameter bootindex (commit
2e55e84282c545aeab8f5c9dd52a8073deaf3dbc
) - Little endian / big endian MMIO framework. Until now, most devices had special hacks to allow them to work on big and little endian systems (ppc / x86). With that framework, they should mostly work with both and not require and device specific hacks anymore. (commit
dd310534e3bf8045096654df41471fd7132887b2
)