
On 02/21/2013 04:32 PM, Christophe Fergeau wrote:
Hey Martin,
Sorry, took me a while to get back to this patch,
No problem, I had the same issue :)
On Thu, Feb 14, 2013 at 05:54:02PM +0100, Martin Kletzander wrote:
On 02/04/2013 04:16 PM, Christophe Fergeau wrote:
--- docs/formatdomain.html.in | 5 ++++- docs/schemas/domaincommon.rng | 5 +++++ src/conf/domain_conf.c | 17 +++++++++++++++++ src/conf/domain_conf.h | 1 + src/qemu/qemu_command.c | 8 ++++++++ .../qemuxml2argv-graphics-spice-compression.args | 3 ++- .../qemuxml2argv-graphics-spice-compression.xml | 4 ++-- .../qemuxml2argv-graphics-spice-qxl-vga.args | 3 ++- .../qemuxml2argv-graphics-spice-qxl-vga.xml | 4 ++-- tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.args | 3 ++- tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml | 4 ++-- 11 files changed, 47 insertions(+), 10 deletions(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 7ad8aea..4b269c8 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -3569,7 +3569,10 @@ qemu-kvm -net nic,model=? /dev/null 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. + secondary bar size. If "ram" or "vram" are not supplied a default
Good fix, but it should in a be separate patch.
Yes, split, I'll push this doc change under the trivial rule (unless there's a freeze going on).
+ value is used. The optional attribute <code>revision</code> (<span + class="since">since 1.0.3</span>) specifies the revision of + the QXL device, newer revisions provides more functionality.
s/provides/provide/ if I'm not mistaken
Yes, I agree, changed.
</dd>
<dt><code>model</code></dt> diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 049f232..fc78e2d 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -2280,6 +2280,11 @@ <ref name="unsignedInt"/> </attribute> </optional> + <optional> + <attribute name="revision"> + <ref name="unsignedInt"/>
This should be > 0 according to my experiments with qemu, but I believe we don't deal with such nuances in the RNG scheme.
I indeed don't know how to do that, and I couldn't find attributes doing it so it's going to stay as is for now ;)
+ </attribute> + </optional> </group> </choice> <optional> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 5782abb..83be711 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -7391,6 +7391,7 @@ virDomainVideoDefParseXML(const xmlNodePtr node, char *vram = NULL; char *ram = NULL; char *primary = NULL; + char *revision = NULL;
if (VIR_ALLOC(def) < 0) { virReportOOMError(); @@ -7406,6 +7407,7 @@ virDomainVideoDefParseXML(const xmlNodePtr node, ram = virXMLPropString(cur, "ram"); vram = virXMLPropString(cur, "vram"); heads = virXMLPropString(cur, "heads"); + revision = virXMLPropString(cur, "revision");
You're leaking the revision string in here.
Oops, thanks! Bad news is that there are already other leaks there in error paths, I'll send patches.
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 9a9e0b1..81925b1 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1160,6 +1160,7 @@ struct _virDomainVideoDef { unsigned int ram; /* kibibytes (multiples of 1024) */ unsigned int vram; /* kibibytes (multiples of 1024) */ unsigned int heads; + unsigned int revision; bool primary; virDomainVideoAccelDefPtr accel; virDomainDeviceInfo info; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index f6273c1..e45c808 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -3598,6 +3598,9 @@ qemuBuildDeviceVideoStr(virDomainVideoDefPtr video,
/* QEMU accepts bytes for vram_size. */ virBufferAsprintf(&buf, ",vram_size=%u", video->vram * 1024); + + if (video->revision != 0)
you can drop the '!= 0' in here, but that's unimportant.
I prefer the more explicit version (with != 0), I've kept it this way as there are other similar if () in the same file.
I haven't noticed the other if()s and we have no consistent style for this, so this doesn't matter, keep it this way.
I'm a bit lost by your conversation with Alon, do you expect more work to be done to get the supported revisions out of QEMU, or will a v2 fixing what you pointed out in this email be enough for now?
I was just thinking out loud how to deal with this, but it's related to the devices. There is a way how to detect those revisions etc., but those are more cumbersome than helpful, so don't mind me talking about that :) If somebody will have something against it, they will say so in the v2 (I'll be mostly out for a few days from now). Have a nice weekend, Martin