Description of problem:
With current RHEL-6.2 builds, libvirt sets the multifunction=on parameter for all PCI devices. This causes QEMU to set
in the 'caps_present' field of the PCI device capabilities. When this is set for any QXL device, the Windows QXL driver will fail to activate the device returning a 'Code 10' error. Google suggests this error usually means the driver failed to find the device.
cf this thread
Best guess is that this is a bug in the Win32 QXL driver, but there's of course a possibility that its a bug in the QEMU host side QXL driver instead.
Version-Release number of selected component (if applicable):
QXL driver version 4.5.52942.0, date 5/16/2011
Steps to Reproduce:
1. Start a QEMU binary with a WinXP guest and QXL driver installed, adding 2 extra heads:
2. Attempt to activate the additional QXL devices in the Windows XP guest
Only the device with 'multifunction=off' will be able to start
Both extra displays start
> With current RHEL-6.2 builds, libvirt sets the multifunction=on parameter for
> all PCI devices.
This is actually incorrect. While libvirt in 6.2 has support for multifunction, it won't actually enable it since the RHEL6.2 KVM binary is too old.
So while, there is clearly a bug in QXL somewhere, it should not impact guests on a RHEL6.2 host, only Fedora 15+ hosts and future RHEL6.3 if multifunction is backported.
Moving to RHEVM-future (3.1) we need to fix this upstream and then -> rhel6.3
set devel_ack? will review at the time the milestone will be set
command line script name is cli-905851, I have attached to attachment.
sorry,ignore comment 7
no plans for whql qxl driver in 3.4, moving to the future releases
The qxl driver is not a pci multifunction device and can't support the multifunction=on setting.