[libvirt] [PATCH] Revert "qemu: detect multi-head qxl via more than version check"

Eric Blake eblake at redhat.com
Mon Mar 25 14:48:02 UTC 2013


On 03/15/2013 12:33 PM, Eric Blake wrote:
> This reverts commit 5ac846e42e5b7e0475f6aa9cc1e0b0c8dac84d44.

Ping - this really needs to go in 1.0.4.

> 
> After further discussions with Alon Levy, I learned the following:
> 
> The use of '-vga qxl' vs. '-device qxl-vga' is completely orthogonal
> to whether ram_size can be exposed.  Downstream distros are interested
> in backporting support for multi-head qxl, but this can be done in
> one of two ways:
> 1. Support one head per PCI device.  If you do this, then it makes
> sense to have full control over the PCI address of each device. For
> full control, you need '-device qxl-vga' instead of '-vga qxl'.
> 2. Support multiple heads through a single PCI device.  If you do
> this, then you need to allocate more RAM to that PCI device (enough
> ram to cover the multiple screens).  Here, the device is hard-coded
> to 0:0:2.0, both in qemu and libvirt code.
> 
> Apparently, backporting ram_size changes to allow multiple heads in
> a single device is much easier than backporting multiple device
> support.  Furthermore, the presence or absence of qxl-vga.surfaces
> is no different than the presence or absence of qxl-vga.ram_size;
> both properties can be applied regardless of whether you have one
> PCI device (-vga qxl) or multiple (-device qxl-vga), so this property
> is NOT a good witness of whether '-device qxl-vga' support has been
> backported.
> 
> Downstream RHEL will NOT be using this patch; and worse, leaving this
> patch in risks doing the wrong thing if compiling upstream libvirt
> on RHEL, so the best course of action is to revert it.  That means
> that libvirt will go back to only using '-device qxl-vga' for qemu
>> = 1.2, but this is just fine because we know of no distros that plan
> on backporting multiple PCI address support to any older version of
> qemu.  Meanwhile, downstream can still use ram_size to pack multiple
> heads through a single PCI device.
> ---
>  src/qemu/qemu_capabilities.c                            |  7 -------
>  tests/qemuhelpdata/qemu-1.2.0-device                    | 16 ----------------
>  tests/qemuhelpdata/qemu-kvm-0.12.1.2-rhel62-beta-device | 10 ----------
>  tests/qemuhelpdata/qemu-kvm-1.2.0-device                | 16 ----------------
>  4 files changed, 49 deletions(-)
> 
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 519d2c5..9a1b781 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -1387,10 +1387,6 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsUsbHost[] = {
>      { "bootindex", QEMU_CAPS_USB_HOST_BOOTINDEX },
>  };
> 
> -static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsQxlVga[] = {
> -    { "surfaces", QEMU_CAPS_DEVICE_VIDEO_PRIMARY },
> -};
> -
>  struct virQEMUCapsObjectTypeProps {
>      const char *type;
>      struct virQEMUCapsStringFlags *props;
> @@ -1424,8 +1420,6 @@ static struct virQEMUCapsObjectTypeProps virQEMUCapsObjectProps[] = {
>        ARRAY_CARDINALITY(virQEMUCapsObjectPropsUsbRedir) },
>      { "usb-host", virQEMUCapsObjectPropsUsbHost,
>        ARRAY_CARDINALITY(virQEMUCapsObjectPropsUsbHost) },
> -    { "qxl-vga", virQEMUCapsObjectPropsQxlVga,
> -      ARRAY_CARDINALITY(virQEMUCapsObjectPropsQxlVga) },
>  };
> 
> 
> @@ -1623,7 +1617,6 @@ virQEMUCapsExtractDeviceStr(const char *qemu,
>                           "-device", "usb-redir,?",
>                           "-device", "ide-drive,?",
>                           "-device", "usb-host,?",
> -                         "-device", "qxl-vga,?",
>                           NULL);
>      /* qemu -help goes to stdout, but qemu -device ? goes to stderr.  */
>      virCommandSetErrorBuffer(cmd, &output);
> diff --git a/tests/qemuhelpdata/qemu-1.2.0-device b/tests/qemuhelpdata/qemu-1.2.0-device
> index 027d99a..5613e00 100644
> --- a/tests/qemuhelpdata/qemu-1.2.0-device
> +++ b/tests/qemuhelpdata/qemu-1.2.0-device
> @@ -208,19 +208,3 @@ usb-host.bootindex=int32
>  usb-host.pipeline=on/off
>  usb-host.port=string
>  usb-host.full-path=on/off
> -qxl-vga.ram_size=uint32
> -qxl-vga.vram_size=uint32
> -qxl-vga.revision=uint32
> -qxl-vga.debug=uint32
> -qxl-vga.guestdebug=uint32
> -qxl-vga.cmdlog=uint32
> -qxl-vga.ram_size_mb=uint32
> -qxl-vga.vram_size_mb=uint32
> -qxl-vga.vram64_size_mb=uint32
> -qxl-vga.vgamem_mb=uint32
> -qxl-vga.surfaces=int32
> -qxl-vga.addr=pci-devfn
> -qxl-vga.romfile=string
> -qxl-vga.rombar=uint32
> -qxl-vga.multifunction=on/off
> -qxl-vga.command_serr_enable=on/off
> diff --git a/tests/qemuhelpdata/qemu-kvm-0.12.1.2-rhel62-beta-device b/tests/qemuhelpdata/qemu-kvm-0.12.1.2-rhel62-beta-device
> index 5eab539..ee0fd78 100644
> --- a/tests/qemuhelpdata/qemu-kvm-0.12.1.2-rhel62-beta-device
> +++ b/tests/qemuhelpdata/qemu-kvm-0.12.1.2-rhel62-beta-device
> @@ -118,13 +118,3 @@ virtio-net-pci.addr=pci-devfn
>  virtio-net-pci.romfile=string
>  virtio-net-pci.rombar=uint32
>  virtio-net-pci.multifunction=on/off
> -qxl-vga.ram_size=uint32
> -qxl-vga.vram_size=uint32
> -qxl-vga.revision=uint32
> -qxl-vga.debug=uint32
> -qxl-vga.guestdebug=uint32
> -qxl-vga.cmdlog=uint32
> -qxl-vga.addr=pci-devfn
> -qxl-vga.romfile=string
> -qxl-vga.rombar=uint32
> -qxl-vga.multifunction=on/off
> diff --git a/tests/qemuhelpdata/qemu-kvm-1.2.0-device b/tests/qemuhelpdata/qemu-kvm-1.2.0-device
> index ebc27f0..879a049 100644
> --- a/tests/qemuhelpdata/qemu-kvm-1.2.0-device
> +++ b/tests/qemuhelpdata/qemu-kvm-1.2.0-device
> @@ -220,19 +220,3 @@ usb-host.bootindex=int32
>  usb-host.pipeline=on/off
>  usb-host.port=string
>  usb-host.full-path=on/off
> -qxl-vga.ram_size=uint32
> -qxl-vga.vram_size=uint32
> -qxl-vga.revision=uint32
> -qxl-vga.debug=uint32
> -qxl-vga.guestdebug=uint32
> -qxl-vga.cmdlog=uint32
> -qxl-vga.ram_size_mb=uint32
> -qxl-vga.vram_size_mb=uint32
> -qxl-vga.vram64_size_mb=uint32
> -qxl-vga.vgamem_mb=uint32
> -qxl-vga.surfaces=int32
> -qxl-vga.addr=pci-devfn
> -qxl-vga.romfile=string
> -qxl-vga.rombar=uint32
> -qxl-vga.multifunction=on/off
> -qxl-vga.command_serr_enable=on/off
> 

-- 
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/20130325/1cb3d275/attachment-0001.sig>


More information about the libvir-list mailing list