RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 915352 - libvirt: qemu, qxl device: support ram_size parameter
Summary: libvirt: qemu, qxl device: support ram_size parameter
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: libvirt
Version: 6.4
Hardware: Unspecified
OS: Unspecified
urgent
urgent
Target Milestone: rc
: ---
Assignee: Eric Blake
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On: 896604
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-02-25 15:06 UTC by Chris Pelland
Modified: 2013-03-21 14:05 UTC (History)
17 users (show)

Fixed In Version: libvirt-0.10.2-18.el6_4.1
Doc Type: Enhancement
Doc Text:
Feature: Libvirt must expose ram_size settings to qxl device. Reason: When using multiple heads in one PCI device, the device needs more RAM assigned. Result (if any): Libvirt can drive multi-head QXL.
Clone Of:
Environment:
Last Closed: 2013-03-21 14:05:46 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2013:0664 0 normal SHIPPED_LIVE libvirt bug fix and enhancement update 2013-03-21 17:37:54 UTC

Description Chris Pelland 2013-02-25 15:06:50 UTC
This bug has been copied from bug #896604 and has been proposed
to be backported to 6.4 z-stream (EUS).

Comment 6 Eric Blake 2013-03-12 16:31:12 UTC
Markus, can you help us determine if there is anything in QMP, -help, and/or -device "?" output, which can be used to distinguish between RHEL 6.3 (non-working '-device qxl-vga', where we had to use '-vga qxl' instead) and RHEL 6.4?  Do we need to spawn a BZ against qemu-kvm to give us such a distinguishing factor?

Comment 9 Markus Armbruster 2013-03-13 13:41:58 UTC
The qemu-kvm backport that brought us the feature (bug 770842) we'd like to detect here stopped right before upstream commit ddd8fdc7 "spice: make number of surfaces runtime-configurable."  Backporting that one on top makes sense to me on its own, and it has the added benefit of exposing a new property libvirt could test to detect the feature.

Please check with Alon whether we need a separate BZ to track the backport of ddd8fdc7.

Comment 10 Eric Blake 2013-03-13 14:21:16 UTC
bug 921128 tracks the qemu change to export a witness; I will go ahead and redo the libvirt side assuming that witness will be backported to 6.4.z.

Comment 12 Eric Blake 2013-03-14 19:48:58 UTC
Yet more IRC conversation - it turns out that use of '-vga qxl' vs. '-device qxl-vga' appears to be completely orthogonal to whether ram_size can be exposed.  This bug was originally asking for ram_size, which my original patches (comment 4) were able to use.  The only remaining patch (comment 11) is solely about using -device, which is what lets the user choose something other than 0:0:2.0 for the display PCI address; apparently -device is STILL unusable for the RHEL 6.4 qemu, but no one in RHEL cares that we are hard-coded to 0:0:2.0.  That is, if multiple displays requires multiple PCI addresses, then you want the addresses to be configurable; but if multiple displays can all be routed through a single address, then hard-coding that address is fine.  The point of configurable ram_size is to deal with the fact that we are able to route multiple displays through one address.

Put another way, it's probably my own fault for volunteering to do a backport of qxl-related patches, without being the original author of any of the upstream work.  Only now, after lots of IRC discussions, am I finally starting to realize that there are two ways to get multi-head support, one via multiple PCI addresses (requiring '-device qxl-vga'), and one requiring additional ram through a single address (requiring ram_size).  I had blindly backported ALL qxl patches, without distinguishing which of the two approaches they were good for, and then got confused when the -device qxl-vga approach was hard-coded to a version check.

Comment 14 zhe peng 2013-03-18 08:32:30 UTC
verify with build:
libvirt-0.10.2-18.el6_4.1.x86_64
qemu-img-rhev-0.12.1.2-2.355.el6.x86_64

step:
1:create a guest with spice, edit xml
.....
  <graphics type='spice' autoport='yes' listen='0.0.0.0'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
.....
 <video>
      <model type='qxl' ram='65536' vram='65536' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
......
2: start guest
#virsh start win2012
Domain win2012 started

check qemu cmd:
#ps -ef | grep kvm
.....
-vga qxl -global qxl-vga.ram_size=67108864 -global qxl-vga.vram_size=67108864 -device qxl,id=video1,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x7 
.....
3: try multiple qxl device:
edit guest xml add three qxl device then start the guest, check qemu cmd,
.....
-vga qxl -global qxl-vga.ram_size=67108864 -global qxl-vga.vram_size=67108864 -device qxl,id=video1,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x7 -device qxl,id=video2,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x8
.....
verification passed.

Comment 16 errata-xmlrpc 2013-03-21 14:05:46 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2013-0664.html


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