Bug 896604
Summary: | libvirt: qemu, qxl device: support ram_size parameter | |||
---|---|---|---|---|
Product: | Red Hat Enterprise Linux 6 | Reporter: | Alon Levy <alevy> | |
Component: | libvirt | Assignee: | Eric Blake <eblake> | |
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> | |
Severity: | urgent | Docs Contact: | ||
Priority: | urgent | |||
Version: | 6.4 | CC: | acathrow, codong, cpelland, cwei, dallan, dblechte, dyuan, eblake, italkohe, jdenemar, lsu, mzhan, ydu, zpeng | |
Target Milestone: | rc | Keywords: | FutureFeature, ZStream | |
Target Release: | --- | |||
Hardware: | Unspecified | |||
OS: | Unspecified | |||
Whiteboard: | ||||
Fixed In Version: | libvirt-0.10.2-19.el6 | 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.
|
Story Points: | --- | |
Clone Of: | ||||
: | 921128 (view as bug list) | Environment: | ||
Last Closed: | 2013-11-21 08:40:40 UTC | Type: | Bug | |
Regression: | --- | Mount Type: | --- | |
Documentation: | --- | CRM: | ||
Verified Versions: | Category: | --- | ||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
Cloudforms Team: | --- | Target Upstream Version: | ||
Embargoed: | ||||
Bug Depends On: | 921128 | |||
Bug Blocks: | 894350, 896690, 915352 |
Description
Alon Levy
2013-01-17 15:34:27 UTC
v2 is awaiting review here: https://www.redhat.com/archives/libvir-list/2013-January/msg01367.html Thanks, Alon Fixed upstream with: commit 55bfd020d8d9de40977832c4762728090df2bee3 Author: Alon Levy <alevy> Date: Fri Jan 18 20:36:36 2013 +0200 qemu: Support ram bar size for qxl devices Adds a "ram" attribute globally to the video.model element, that changes the resulting qemu command line only if video.type == "qxl". <video> <model type='qxl' ram='65536' vram='65536' heads='1'/> </video> That attribute gets a default value of 64*1024. The schema is unchanged for other video element types. The resulting qemu command line change is the addition of -global qxl-vga.ram_size=<ram>*1024 or -global qxl.ram_size=<ram>*1024 For the main and secondary qxl devices respectively. The default for the qxl ram bar is 64*1024 kilobytes (the same as the default qxl vram bar size). I'll cover the backport 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 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. Although the bulk of this patch is picked up by rebasing, we need a RHEL-only patch to round it out: http://post-office.corp.redhat.com/archives/rhvirt-patches/2013-March/msg00031.html 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. Upstream patch proposed: https://www.redhat.com/archives/libvir-list/2013-March/msg00708.html Back in POST; next rebase will pick up: commit 5ac846e42e5b7e0475f6aa9cc1e0b0c8dac84d44 Author: Eric Blake <eblake> Date: Wed Mar 13 18:41:22 2013 -0600 qemu: detect multi-head qxl via more than version check Multi-head QXL support is so useful that distros have started to backport it to qemu earlier than 1.2. After discussion with Alon Levy, we determined that the existence of the qxl-vga.surfaces property is a reliable indicator of whether '-device qxl-vga' works, or whether we have to stick to the older '-vga qxl'. I'm leaving in the existing check for QEMU_CAPS_DEVICE_VIDEO_PRIMARY tied to qemu 1.2 and newer (in case qemu is built without qxl support), but for those distros that backport qxl, this additional capability check will allow the correct command line for both RHEL 6.3 (which lacks the feature) and RHEL 6.4 (where qemu still claims to be version 0.12.2.x, but has backported multi-head qxl). * src/qemu/qemu_capabilities.c (virQEMUCapsObjectPropsQxlVga): New property test. (virQEMUCapsExtractDeviceStr): Probe for backport of new capability to qemu earlier than 1.2. * tests/qemuhelpdata/qemu-kvm-1.2.0-device: Update test. * tests/qemuhelpdata/qemu-1.2.0-device: Likewise. * tests/qemuhelpdata/qemu-kvm-0.12.1.2-rhel62-beta-device: Likewise. I can reproduce this bug: Version: libvirt-0.10.2-18.el6.x86_64 Steps: 1.prepare a guest with qxl video device. # virsh dumpxml test ... <video> <model type='qxl' vram='65536' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> ... 2. try to add paremeter "ram='65536'" to the video model. Result: step1: there is no ram in qxl video paremeters. step2: can't add ram to the xml Verify: Version: libvirt-0.10.2-19.el6.x86_64 Steps: As the steps above. Result: 1.step1. the xml have the ram patemeter in the qxl model. 2. can change the size of ram As the result , change to VERIFIED 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-1581.html |