- Previously, a guest using the e1000 network adapter could do auto-negotiation during a system reset when the link_down flag was set. Consequently, after the reset, the guest network was unavailable. A patch has been provided to address this bug and the guest can now connect to the network after a system reset in the described scenario.
- This update provides persist tracking of the state of the fsfreeze command using the file system so that the qemu-ga daemon is aware of the fsfreeze state even if the daemon dies or is restarted.
- The guest-fsfreeze-thaw command has been allowed to run unconditionally so that the qemu-ga daemon is still able to thaw the file system even if the daemon dies or is restarted.
- The qemu-qa daemon has been modified to read the /proc/self/mounts file instead of re-reading the /etc/mtab file when the guest-fsfreeze-thaw command is performed on the frozen file system. With this change, the daemon avoids an attempt to change the atime timestamp of the /etc/mtab file, which would be blocked.
- The guest-suspend-disk and guest-suspend-ram commands can now be used to suspend to RAM or to disk on a Windows system.
- This update fixes a memory leak in the Windows communication code.
- The guest-network-get-interfaces command can now be used to acquire network interface information in Linux.
- This update provides file system freeze support improvements and fixes.
- In the SVVP (Server Virtualization Validation Program) environment, when the e1000 network driver was used, the PCI Hardware Compliance Test For Systems job failed. Consequently, the HCK (Hardware Certification Kit) SVVP certification could not be passed on the system. A patch has been provided to address this issue and the test now passes as expected in the described scenario.
- The dynamic hard disk uses the Virtual Hard Disk (VHD) format, and the size of the data offset in its header is 64 bits. Although Microsoft's VHD specification allows initialization of only the first 32 bits, Microsoft Windows VHD images initialize all 64 bits. QEMU previously initialized only the first 32 bits in the VPC code. Consequently, the VHD images generated by the qemu-img utility may not have been recognized in some environments (for example Microsoft Hyper-v virtualization) and by some tools (for example vhd-util). This update modifies QEMU to initialize all 64 bits of the data offset field in the header of the dynamic disks. Images in VHD format generated by qemu-img are now accepted by Microsoft Hyper-V virtualization and can be mounted successfully using the Mount-VHD command.
- With some initial guest OS installations using the QXL driver and VNC as the display protocol, virtual machines were terminating unexpectedly with a segmentation fault during setup and returned the "lost connection with kvm process" error message. A patch has been provided to address this issue and virtual machines now run properly in the described scenario.
- When migrating a guest with the HDA audio device from the host using a newer version of QEMU than the version used by the target host, the migration failed. This was caused by a recent change of the live migration format for the HDA audio device which was not recognized by the older version of QEMU. This update addresses this issue and modifies QEMU to allow sending the data in the old migration format by using the "-M $oldversion" option. The live migration now succeeds in this scenario.
- The initial APIC ID was not set with the correct topology bits when the number of CPU cores or threads was not a power of 2. As a consequence, CPU topology (assignment of CPU cores and threads to CPU sockets) visible to the guest was incorrect. With this update, the underlying code has been modified so that the initial APIC ID is set as expected in this scenario and the guest is now able to obtain the correct CPU topology.
- Previously, qemu-kvm defined an incorrect CPU level for certain CPU models, such as Intel Core 2 Duo P9xxx (Penryn Class Core 2), Intel Celeron_4x0 (Conroe/Merom Class Core 2), and Intel Core i7 9xx (Nehalem Class Core i7). Consequently, the guest system was unable to obtain any additional information about the CPU topology and was able to provide only the CPU level two topology information (package and thread information). This update corrects the underlying code to define the CPU level to be the level four for the aforementioned CPU models so that the guest now can obtain expected CPU topology information.
- When creating a virtual machine (VM) using the "-spice" command line option with the "streaming-video=" sub-option which was assigned an invalid value, the incorrect value was ignored and the VM was successfully created with the default value. This update corrects this behavior, and if the "streaming-video" sub-option is given an invalid value, an attempt to create a VM fails and qemu-kvm exits gracefully.
- Previously, virtual Performance Monitoring Unit (vPMU) pass-through mode was enabled by default on the Intel Xeon Processor E5-XXXX model in qemu-kvm. This could pose a problem when performing a live migration of virtual machines to a new host with less PMU counters than the original host had. The guest expected the same set of PMU counters and could terminate unexpectedly due to an attempt to use the non-existing PMU counters. With this update, vPMU pass-through mode has been disabled for the Intel Xeon Processor E5-XXXX model in QEMU on Red Hat Enterprise Linux 6.4 and can only be enabled when using the "-cpu host" option. The guest can no longer crash during live migration in this scenario on Red Hat Enterprise Linux 6.4, however, to keep backward compatibility of live migration, QEMU keeps the old behavior on Red Hat Enterprise Linux 6.3.
- When sending multi-descriptor packets, QEMU emulation of the e1000 NIC previously loaded the packet options field (POPTS) for every data descriptor. This was in conflict with the e1000 specification that requires the POPTS field to be ignored with exception of the first data descriptor of the packet. As a consequence, performance of the emulated e1000 NIC was very poor when working with multi-descriptor packets. With this update, QEMU emulation of e1000 has been corrected so it now behaves in accordance with the specification and POPTS is loaded only for the first data descriptor of the packet. Performance of the emulated e1000 NIC fulfills the user's expectations when processing multi-descriptor packets.
- In VGA mode, SPICE previously used dirty page tracking mechanism to determine which screen areas needed to be updated. Screen areas that had to be updated were tracked with scanline granularity so that even small updates resulted in huge loads of data to be sent. This had a significant impact on SPICE performance in VGA mode. This update modifies SPICE to keep the most recent copy of the screen content that was sent to the SPICE client. The copy is used to determine the exact areas of the screen that need to be updated, and only those pieces are now updated instead of whole scanlines. SPICE performance in VGA mode has increased as expected.
- Red Hat Enterprise Linux 6.4 adds support for Intel's next-generation Core processor to qemu-kvm so that KVM guests can utilize the new features this processor provides, the most important of which are: Advanced Vector Extensions 2 (AVX2), Bit-Manipulation Instructions 1 (BMI1), Bit-Manipulation Instructions 2 (BMI2), Hardware Lock Elision (HLE), Restricted Transactional Memory (RTM), Process-Context Identifier (PCID), Invalidate Process-Context Identifier (INVPCID), Fused Multiply-Add (FMA), Big-Endian Move instruction (MOVBE), F Segment and G Segment BASE instruction (FSGSBASE), Supervisor Mode Execution Prevention (SMEP), Enhanced REP MOVSB/STOSB (ERMS).
- Red Hat Enterprise Linux 6.4 supports merging of external snapshots into a backing file chain while the guest is live. Merging snapshots into the backing file chains is often faster, and fits certain workflows better than forward streaming. Snapshot data resides in the backing file specified for the merge, and merged snapshots can then be removed.
- KVM now supports live migration of guests with USB devices. The following devices are supported: Enhanced Host Controller Interface (EHCI) and Universal Host Controller Interface (UHCI) local passthrough and emulated devices such as storage devices, mice, keyboards, hubs, and others.
- The AMD Opteron 4xxx series processor is now supported by qemu-kvm. This allows the new features of this processor series to be exposed to KVM guests, such as: the F16C instruction set, Trailing Bit Manipulation, BMI1 decimate functions, and the Fused Multiply-Add (FMA) instruction set.
- With this update, the e1000 driver has been modified to flush the receive queue whenever it is replenished. Also, whenever the receive queue is emptied, the drivers now notify the I/O thread to repoll the file descriptor. This improvement significantly decreases the guest's latency.
- KVM now supports live migration of guests using USB forwarding via SPICE, while maintaining existing USB device redirection for all configured devices.
- When both host and guest systems are updated to Red Hat Enterprise Linux 6.4 or newer, interrupt-intensive workloads, such as incoming network traffic with a virtio network device, have the number of context switches between the VM and the hypervisor optimized. This significantly reduces CPU utilization of the host.
- This update allows a sound device to be detected as a microphone or a speaker in the guest system (in addition to being detected as line-in and line-out). Sound devices can now function properly in guest applications that accept only certain types of input for voice recording and audio.
- The QEMU user was previously unable to control the time delay before SeaBIOS rebooted a guest if no bootable device was found. This update enables the QEMU user to control the boot process of the guest by adding a new boot option, "-boot reboot-timeout=T", where T is the delay time in milliseconds. The option allows QEMU to transfer the /etc/boot-fail-wait configuration file to SeaBIOS and set the reboot timeout. The user can even prevent SeaBIOS from rebooting the guest by setting the reboot-timeout option to "-1", which is the default value.
- A flaw was found in the way QEMU-KVM emulated the e1000 network interface card when the host was configured to accept jumbo network frames, and a guest using the e1000 emulated driver was not. A remote attacker could use this flaw to crash the guest or, potentially, execute arbitrary code with root privileges in the guest.
- An unquoted search path flaw was found in the way the QEMU Guest Agent service installation was performed on Windows. Depending on the permissions of the directories in the unquoted search path, a local, unprivileged user could use this flaw to have a binary of their choosing executed with SYSTEM privileges.