[libvirt] [PATCH] caps: use -device for primary video when qemu >=1.6

Eric Blake eblake at redhat.com
Wed Jul 24 20:44:14 UTC 2013


[adding qemu-devel]

On 07/24/2013 03:41 AM, Guannan Ren wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=981094
> The commit 0ad9025ef introduce qemu flag QEMU_CAPS_DEVICE_VIDEO_PRIMARY
> for using -device VGA, -device cirrus-vga, -device vmware-svga and
> -device qxl-vga. In use, for -device qxl-vga, mouse doesn't display
> in guest window like the desciption in above bug.

s/desciption/description/

As someone that was hit by the qemu bug of no mouse cursor display on a
qxl guest, I'm more than willing to agree to this patch.  Upstream qemu
has a patch in their queue to fix the qxl mouse display bug for qemu 1.6.

> This patch try to use -device for primary video when qemu >=1.6 which
> is safe.
> ---
>  src/qemu/qemu_capabilities.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)

ACK.  I hate hard-coded version checks for capability bits, but don't
know if we can do any better.  It would be nice if we had some other
capability bit that we could query in QMP to know for certain whether
'-device qxl-vga' properly works without eating the mouse cursor.

> 
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 5dc3c9e..08406b8 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -1189,8 +1189,6 @@ virQEMUCapsComputeCmdFlags(const char *help,
>          virQEMUCapsSet(qemuCaps, QEMU_CAPS_VNC_SHARE_POLICY);
>      }
>  
> -    if (version >= 1002000)
> -        virQEMUCapsSet(qemuCaps, QEMU_CAPS_DEVICE_VIDEO_PRIMARY);
>      return 0;
>  }
>  
> @@ -2424,7 +2422,6 @@ virQEMUCapsInitQMPBasic(virQEMUCapsPtr qemuCaps)
>      virQEMUCapsSet(qemuCaps, QEMU_CAPS_MACHINE_OPT);
>      virQEMUCapsSet(qemuCaps, QEMU_CAPS_DUMP_GUEST_CORE);
>      virQEMUCapsSet(qemuCaps, QEMU_CAPS_VNC_SHARE_POLICY);
> -    virQEMUCapsSet(qemuCaps, QEMU_CAPS_DEVICE_VIDEO_PRIMARY);
>  }
>  
>  /* Capabilities that are architecture depending
> @@ -2597,6 +2594,9 @@ virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps,
>      if (qemuCaps->version >= 1003001)
>          virQEMUCapsSet(qemuCaps, QEMU_CAPS_VNC_WEBSOCKET);
>  
> +    if (qemuCaps->version >= 1006000)
> +        virQEMUCapsSet(qemuCaps, QEMU_CAPS_DEVICE_VIDEO_PRIMARY);
> +
>      if (virQEMUCapsProbeQMPCommands(qemuCaps, mon) < 0)
>          goto cleanup;
>      if (virQEMUCapsProbeQMPEvents(qemuCaps, mon) < 0)
> 

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 621 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20130724/5ea11096/attachment-0001.sig>


More information about the libvir-list mailing list