This reverts commit 5ac846e42e5b7e0475f6aa9cc1e0b0c8dac84d44. 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 -- 1.8.1.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list