Bug 921128 - qemu: backport qxl-vga.surfaces
Summary: qemu: backport qxl-vga.surfaces
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qemu-kvm
Version: 6.5
Hardware: Unspecified
OS: Unspecified
Target Milestone: rc
: ---
Assignee: Alon Levy
QA Contact: Virtualization Bugs
Depends On:
Blocks: 894350 896604
TreeView+ depends on / blocked
Reported: 2013-03-13 14:17 UTC by Eric Blake
Modified: 2013-03-27 14:37 UTC (History)
22 users (show)

Fixed In Version:
Doc Type: Enhancement
Doc Text:
Clone Of: 896604
Last Closed: 2013-03-21 20:53:01 UTC

Attachments (Terms of Use)

Description Eric Blake 2013-03-13 14:17:47 UTC
Cloning to qemu to ensure that qemu exposes something that libvirt can use to tell whether multi-head support is reliable.  IRC conversation said that we should backport qemu's commit ddd8fdc7 to use qxl-vga.surfaces as the witness, instead of a hard-coded version check.

+++ This bug was initially created as a clone of Bug #896604 +++

Add support for a ram_size parameter similar to the current support for vram_size.

Rationale: To allow a compatible performance of a single pci device using the new multiple monitor support to the old multiple pci card solution, we need to be able to set the memory of the ram bar to larger then the default size. We can already do the same to the vram bar (second bar) because the support was added by:

2011-03-06  Osier Yang  <jyang@redhat.com>

        qemu: Support vram for video of qxl type

related: #894350 PRD32 - [RFE] qxl device should support multiple monitors

--- Additional comment from Eric Blake on 2013-01-22 16:35:10 MST ---

It turns out that backporting just this patch in isolation doesn't make sense; I'm instead working on backporting all the patches related to multi-monitor qxl support:
632c60e qemu: Detect VGA_QXL capability correctly
ed6fc41 tests: add one -device video device testcase
aa51202 qemu: use newer -device video device in qemu commandline
09938bb conf: add optional attribte primary to video <model> element
4c993d8 qemu: add qemu vga devices caps and one cap to mark them usable

--- Additional comment from Eric Blake on 2013-01-23 07:06:06 MST ---

Hmm, the upstream patches set a capability based solely on a version check:

+    if (version >= 1002000)
+        qemuCapsSet(caps, QEMU_CAPS_DEVICE_VIDEO_PRIMARY);

This series may need to include a RHEL-specific patch that scrapes some additional string out of -help output in order to set that capability even when targeting RHEL's 0.12.x version number.

--- Additional comment from Eric Blake on 2013-03-06 15:09:34 MST ---

Although the bulk of this patch is picked up by rebasing, we need a RHEL-only patch to round it out:

--- Additional comment from Eric Blake on 2013-03-13 08:08:46 MDT ---

Moving back to assigned - based on discussion on 915352, upstream libvirt should be probing for qxl-vga.surfaces instead of a hard-coded version check for 1.2; we should backport that patch instead of a RHEL-specific patch.  Meanwhile, I will clone this back to qemu, to make sure RHEL qemu exposes qxl-vga.surfaces.

Comment 1 Alon Levy 2013-03-13 19:50:41 UTC
updating to 6.5, removing ZStream flag.

Comment 2 Alon Levy 2013-03-13 19:51:43 UTC
and putting the ZStream flag back in. Sorry for the noise.

Comment 4 mazhang 2013-03-15 06:42:02 UTC
Hi Alon,
Just try reproduce this bug on qemu-kvm-rhev- by:
/usr/libexec/qemu-kvm -vga qxl -monitor stdio -global qxl-vga.vram_size=134217728 -global qxl-vga.ram_size=134217728
and got the memory values large the default size
(qemu)info qtree
dev: qxl-vga, id ""
  dev-prop: ram_size = 134217728
  dev-prop: vram_size = 134217728

Is this a correct way to validate this bug? if not, please correct me, thanks!

Comment 5 mazhang 2013-03-15 07:32:17 UTC
Is this patch will get qxl-vga.surfaces by execute "info qtree"? if so we'll change the flags qa-ack+, if not, could you please tell me how to verify it, thanks.

Comment 6 Eric Blake 2013-03-15 12:01:12 UTC
This bug is liable to be CLOSED WONTFIX.  Discussions about whether libvirt needs a distinguishing feature have pointed out that libvirt is already able to set ram_size.  The only thing libvirt was unable to do was to distinguish between '-vga qxl' and '-device qxl-vga'; where I had mistakenly thought that distinguishing the presence of qxl-vga.surfaces would be a reliable witness for that fact.  But it turns out that '-device qxl-vga' is unusable in RHEL 6, and that this is NOT a good witness for that fact, so there is probably no justifiable reason for doing this backport, after all.

Comment 7 Eric Blake 2013-03-21 20:53:01 UTC
The original goal of supporting libvirt is no longer relevant, and no one else has spoken up with a reason why this is needed in RHEL 6.  Closing as WONTFIX.

Note You need to log in before you can comment on or make changes to this bug.