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).
This commit is contained in:
Alon Levy
2013-01-18 20:36:36 +02:00
committed by Eric Blake
parent c9a85af319
commit 55bfd020d8
12 changed files with 110 additions and 46 deletions

View File

@@ -3565,7 +3565,11 @@ qemu-kvm -net nic,model=? /dev/null
video device in domain xml is the primary one, but the optional
attribute <code>primary</code> (<span class="since">since 1.0.2</span>)
with value 'yes' can be used to mark the primary in cases of mutiple
video device. The non-primary must be type of "qxl".
video device. The non-primary must be type of "qxl". The optional
attribute <code>ram</code> (<span class="since">since
1.0.2</span>) is allowed for "qxl" type only and specifies
the size of the primary bar, while <code>vram</code> specifies the
secondary bar size. If "ram" is not supplied a default value is used.
</dd>
<dt><code>model</code></dt>

View File

@@ -2251,22 +2251,34 @@
</define>
<!--
A video adapter description, allowing configuration of device
model, number of virtual heads, and video ram size
model, number of virtual heads, video ram size, and for qxl
both ram bar sizes.
-->
<define name="video">
<element name="video">
<optional>
<element name="model">
<attribute name="type">
<choice>
<value>vga</value>
<value>cirrus</value>
<value>vmvga</value>
<value>xen</value>
<value>vbox</value>
<value>qxl</value>
</choice>
</attribute>
<choice>
<attribute name="type">
<choice>
<value>vga</value>
<value>cirrus</value>
<value>vmvga</value>
<value>xen</value>
<value>vbox</value>
</choice>
</attribute>
<group>
<attribute name="type">
<value>qxl</value>
</attribute>
<optional>
<attribute name="ram">
<ref name="unsignedInt"/>
</attribute>
</optional>
</group>
</choice>
<optional>
<attribute name="vram">
<ref name="unsignedInt"/>