• E
    Revert "qemu: detect multi-head qxl via more than version check" · 7524cd89
    Eric Blake 提交于
    This reverts commit 5ac846e4.
    
    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.
    7524cd89
qemu_capabilities.c 77.3 KB