1.188.2. RHBA-2011:1070: xen bug fix and enhancement update

Updated xen packages that fix various bugs and add several enhancements are now available for Red Hat Enterprise Linux 5.


This update was released as errata RHBA-2011:1070 — xen bug fix and enhancement update.
The xen packages contain administration tools and the xend service for managing the kernel-xen kernel for virtualization on Red Hat Enterprise Linux.

Bug Fixes:

When a large number, several tens or more, of Virtual Block Devices (VBDs) were present in a guest operating system, the time the xm create command took to boot a guest increased for each subsequent guest. With this update, the check procedure for duplicate devices has been optimized to significantly speed up guest creation, and proper XenStore storage space entry transaction handling has been provided, fixing this bug.
If a guest had 32 GB of operating memory or more, the Desktop Management Interface (DMI) information provided to the guests was incorrect. This was detected by the System Management BIOS (SMBIOS) tests required for the Microsoft Server Virtualization Validation Platform (SVVP) certification. With this update, a patch has been provided, and the DMI information provided to the guests with very large operating memory is now correct.
Microsoft's Server Virtualization Validation Platform (SVVP) tests detected unreliability of the emulated HPET (High Performance Event Timer) on some hosts. With this update, the HPET can be configured as a per-domain configuration option; if it is disabled, the guest will choose a more reliable timer source. Disabling the HPET is suggested for Windows guests, as well as fully-virtualized Linux guests that show occasional time went backwards errors in the console.
On the Itanium platform, it was possible to create a HVM (Hardware Virtual Machine) guest with more than 32 virtual CPUs (VCPUs) without any warning messages. Consequently, the xm list command reported only one VCPU on that machine. With this update, a patch has been provided to disallow HVM guest creation with more than 32 VCPUs on the Itanium platform, as this is not supported, thus preventing this bug.
Previously, the mouse cursor could not be moved in an fully-virtualized guest when the emulated PS/2 mouse was chosen together with the Local SDL Window display method. With this update, a patch has been provided that fixes this incorrect behavior of the PS/2 mouse in an SDL (Simple DirectMedia Layer) window, and the mouse cursor now works as expected.
When the device_model variable in a HVM guest configuration file was not properly specified, the qemu-dm daemon did not start; even though the virtual machine was created, its status reported by the xm list command was incorrect, and the machine could not be properly used. With this update, the device model is checked on domain startup and an error message is issued by the xend daemon if the device model is incorrect, thus preventing this bug.
After a domain name was changed via the xm rename command, the xentop utility failed to properly reflect this change in its output. With this update, the setName() function has been fixed to propagate the new domain name to domain paths and back-end domain names, and xentop now shows these changes properly.
Previously, when the rename-restart option was set as a reaction to a guest termination and the xend daemon was restarted after the guest crashed, xend lost track of the new guest instance. This bug has been fixed, and all guests are now visible via xend after the daemon restart.
Previously, the xend daemon did not perform syntax checks for block devices either in configuration files or on the command line. As a consequence, the guest was exposed to a kernel panic or the xm block-attach command failed. With this update, a patch has been provided, and xend now checks the format of block device entries and parameters before adding the information into XenStore storage space, fixing these issues.
After a PV (paravirtualized) guest was saved, restored and then destroyed on a disk partition with insufficient space, the xend daemon preserved reference to the non-existent guest. As a consequence, a zombie guest sometimes appeared and was reported by the xm list command. With this update, a memory leak has been fixed in the xc_resume() function, and now no zombie guests appear in the described scenario.
When a guest was configured with both xvd[x] and hd[x] disks attached (where [x] is a sequential identifying letter), the disk configured as xvd[x] was not recognized. The guest then could fail to boot, reporting no available bootable disk. With this update, Xen fully-virtualized guests show xvd[x] disks also as IDE devices, letting guests boot properly in the described scenario.
Previously, if the virtual CD-ROM was ejected in the guest operating system, and the xm block-configure command was subsequently used to reinsert the same medium, the guest operating system failed to detect the newly inserted medium. With this update, a patch has been provided that handles CD-ROM ejection properly, fixing the bug.
Previously, a 32-bit HVM guest running under a 64-bit hypervisor terminated unexpectedly if the xm mem-set command attempted to change the guest's memory reservation. With this update, a patch has been provided that checks whether the HVM domain is 32-bit or 64-bit. The patch then disallows the aforementioned method of setting up memory for guests, thus ensuring this bug can no longer occur.
When an HVM guest with several disks emulated as SCSI via the QEMU emulator booted, numerous SCSI inquiry errors were returned. With this update, a patch has been provided to properly handle the varying length of the inquiry commands, and the aforementioned error messages are no longer returned.
Prior to this update, a race condition had been occurring between the xend daemon and the xen-hotplug-cleanup script, causing the qemu-dm utility to terminate with a segmentation fault. With this update, a patch that fixes the race condition in xend hot plug scripts has been provided, and the segmentation fault no longer occurs.
Previously, the cache flush for IDE devices emulated via the qemu emulator was performed synchronously. When the flush process took too much time, the virtual CPU was stuck while the fsync utility was running. This behavior sometimes caused guests to terminate unexpectedly on the Windows operating system. With this update, cache flushes for IDE devices are done asynchronously, and a crash no longer occurs in the described scenario.
When initializing PCI devices, due to an off-by-one-bit error in the hvmloader BIOS, fully-virtualized Xen guests with more than 12 PCI devices could not be created. This bug has been fixed, and now up to 28 PCI devices can be attached to a fully-virtualized guest.
When starting or stopping the xendomains service with an invalid image and a regular saved domain, the formatting of the output messages was confusing and hard to read. With this update, the output has been clarified.
Prior to this update, the hot plug scripts did not check if an image file existed before doing further processing. Consequently, when a non-existent image file was attached to a guest, the output error message was too vague to be helpful. This bug has been fixed, and the error message is sufficiently informative.
Previously, a random MAC address was generated for dom0 TAP devices in HVM guests. If this address sorted above the MAC address of the bridge interface, the connectivity to the guest was lost. With this update, a dummy MAC address that is always larger than the MAC address of any bridge interface is generated instead, and this bug no longer occurs.
Memory leaks were discovered in the code following the deletion of block headers and also in the following functions: raw_aio_remove(), qemu_bh_delete() and pt_msix_init(). With this update, a set of patches has been provided to fix these bugs.
Prior to this update, double click or dragging mouse events were sometimes lost when using an emulated USB mouse or a tablet device in a fully-virtualized guest. With this update, buffering of mouse events has been added to the emulation of USB pointer devices, and lost mouse events occur much less frequently.
When a Red Hat Enterprise Linux 6.1 fully-virtualized Xen guest requested an unplug of emulated network cards, the qemu-dm device model would also disconnect host network cards that were passed-through to the guest. This bug has been fixed, and now the pass-through NICs (Network Interface Cards) remain functioning for Red Hat Enterprise Linux 6.1 guests.
A part of the recovery code in the XendDomain.py source file used an unqualified name to access the XendDomainInfo.do_FLR() function. As a consequence, a network card's virtual functions were not properly reset before a fully-virtualized guest was started. With this update, all do_FLR() calls use the correct scope, and this bug no longer occurs.
The xenctx utility compiled on a 64-bit architecture was using the 64-bit version of the xen_cr3_to_pfn() function on 32-bit PV and HVM domains. With this update, xenctx prints 32-bit register values as expected, fixing this bug.
When a PV guest was installed via the grub2 utility, the unprivileged domain (DomU) failed to be created, and the guest failed to boot. With this update, a patch that supports (hdX, msdosY) partition syntax for grub2 has been provided, and the guest is now able to boot successfully in the described scenario.
Previously, the blktap user-space component did not support attaching more than 100 devices to a guest. With this update, a patch has been provided to address this issue, and now up to 255 image files can be properly attached to a guest.
Previously, version 2.6.38 or newer kernels, which are compressed using the xz compression utility, could not be properly booted with the xen package. With this update, xz decompression support has been added, thus fixing this bug.


This update introduces a feature to export two or more serial ports to a Xen guest.
All users of xen are advised to upgrade to these updated packages, which provide numerous bug fixes and an enhancement.