WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH] Play with spice for xen-upstream-qemu on upstrea

To: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] Play with spice for xen-upstream-qemu on upstream Xen
From: ZhouPeng <zpengxen@xxxxxxxxx>
Date: Tue, 19 Apr 2011 09:31:42 +0800
Cc: "Xen-Devel \(E-mail\)" <xen-devel@xxxxxxxxxxxxxxxxxxx>, Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Delivery-date: Mon, 18 Apr 2011 18:32:39 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=HyvxI3oQnRISH4KP+EV2wpMRimW2N4ZN3Q0xjbSEPwE=; b=lSC3RSOLfF5qRO2mPGdO7JD6fYogZt3qtv0nCczLZcfFHnl+0vj1O522p+jy3QnYpX bjmH9XAmqPWyWmfGbtsDuTooSXua7/U5sZTzTqBUcyA5ZCIDSUu+4NUb2443xWHdzcZV ELL5JnnwUr+ky4nvR0I410nY75z9Sfq4pl2Cw=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=P+duV1DeFQ6oP7pVbhIMCUzMnjIldQM344ZRwnUkIcNnwrtrxTEevU//4Sfg5QL0eP oHivXYcOMRTbACxBjibCCfpkjV7yh7Tn4yPdARNozgBrPFiNzWMAaF6hmvQgCIEafyy7 pAEmL1vohU6JOmv9u6u48GptNztUNJ6JSn0HU=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <19884.26020.847575.426352@xxxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <BANLkTi=9OBXN0fMaPEvrEityAqM-L6yPBQ@xxxxxxxxxxxxxx> <19884.26020.847575.426352@xxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx


2011/4/19 Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
ZhouPeng writes ("[Xen-devel] [PATCH] Play with spice for xen-upstream-qemu on upstream Xen"):
> Signed-off-by: Zhou Peng <zhoupeng@xxxxxxxxxxxxxxx>
>
> This patch allows you to play with spice for
> xen-upstream-qemu on upstream Xen or released Xen-4.1.0.

Thanks.  There seems to be some unrelated code in here.  For example:

> -                    libxl__sprintf(gc, "%s%s", listen,
> -                        info->vncunused ? ",to=99" : ""));
> +                    libxl__sprintf(gc, "%s%s,%s", listen,
> +                        info->vncunused ? ",to=99" : "", info->vncpasswd));

and

> -        if (info->apic) {
> +        if (info->acpi) {
    yes, it's it's unrelated.
    Thanks,
Ian.

Signed-off-by: Zhou Peng <zhoupeng@xxxxxxxxxxxxxxx>

This patch allows you to play with spice for
xen-upstream-qemu on upstream Xen or released Xen-4.1.0.

Nothing need to be modified in xen-upstream-qemu,
because qemu has include spice's code as a new feature since qemu-0.14.

Usage:

Add spice fields in VM configuration file.
#spice
spice=1
spiceport=6000
spicehost='192.168.1.187'
spicedisable_ticketing = 0 # default is 0
spicepasswd = 'password'

apic=0 # disable acpi, but if you used the appended patch, set acpi=0

You may need to disable acpi(I'm not sure),
but if you want to disable acpi, you may need to set
apic = 0, (Yes, It is apic not acpi, pls don't ask me why, because I am also confused with it).
If you feel uncomfortable by setting apic = 0, you can try an additional patch appended,
then you can use acpi=0 in vm cfg file to give "no-acpi" argument to qemu.


diff -r 3f00c5faa12a tools/libxl/libxl.idl
--- a/tools/libxl/libxl.idl     Wed Apr 13 16:10:26 2011 +0100
+++ b/tools/libxl/libxl.idl     Mon Apr 18 16:12:16 2011 +0800
@@ -153,6 +153,13 @@ libxl_device_model_info = Struct("device
     ("keymap",           string,            False, "set keyboard layout, default is en-us keyboard"),
     ("sdl",              bool,              False, "sdl enabled or disabled"),
     ("opengl",           bool,              False, "opengl enabled or disabled (if enabled requires sdl enabled)"),
+    ("spice",            bool,              False, "spice enabled or disabled"),
+    ("spiceport",        integer,           False, "the port that should be listened on for the spice server"),
+    ("spicetls_port",    integer,           False, "the tls port that should be listened on for the spice server, at least one of the port or tls port must be given"),
+    ("spicehost",        string,            False, "the interface that should be listened on if given otherwise any interface"),
+    ("spicedisable_ticketing", bool,        False, "Enable client connection with no password"),
+    ("spicepasswd",      string,            False, "set ticket password, witch must be used by a client for connection. The passwords never expires"),
+    ("spiceagent_mouset",bool,              False, "Whether spice agent is used for client mouse mode(default is on)"),
     ("nographic",        bool,              False, "no graphics, use serial port"),
     ("gfx_passthru",     bool,              False, "graphics passthrough enabled or disabled"),
     ("serial",           string,            False, "serial port re-direct to pty deivce"),
diff -r 3f00c5faa12a tools/libxl/libxl_dm.c
--- a/tools/libxl/libxl_dm.c    Wed Apr 13 16:10:26 2011 +0100
+++ b/tools/libxl/libxl_dm.c    Mon Apr 18 16:12:16 2011 +0800
@@ -234,6 +234,35 @@ static char ** libxl__build_device_model
     }
     if (info->sdl) {
         flexarray_append(dm_args, "-sdl");
+    }
+    if (info->spice) {
+        char *spiceoptions = NULL;
+        if (!info->spiceport && !info->spicetls_port) {
+            assert(!"at least one of the spiceport or tls_port must be provided");
+        }
+
+        if (!info->spicedisable_ticketing) {
+            if (!info->spicepasswd)
+                assert(!"spice ticketing is enabled but missing password");
+            else if (!info->spicepasswd[0])
+                assert(!"missing code for supplying spice password");
+        }
+        spiceoptions = libxl__sprintf(gc, "port=%d,tls-port=%d",
+                       info->spiceport, info->spicetls_port);
+        if (!info->spicehost)
+            spiceoptions = libxl__sprintf(gc,
+                    "%s,host=%s", spiceoptions, info->spicehost);
+        if (info->spicedisable_ticketing)
+            spiceoptions = libxl__sprintf(gc, "%s,disable-ticketing", spiceoptions);
+        else
+            spiceoptions = libxl__sprintf(gc,
+                    "%s,password=%s", spiceoptions, info->spicepasswd);
+        spiceoptions = libxl__sprintf(gc, "%s,agent-mouse=%s", spiceoptions,
+                                      info->spiceagent_mouset ? "on" : "off");
+
+        flexarray_append(dm_args, "-spice");
+        flexarray_append(dm_args, spiceoptions);
+        printf("SPICE Options:\n  -spice %s\n", spiceoptions);
     }
 
     if (info->type == XENPV && !info->nographic) {
diff -r 3f00c5faa12a tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c  Wed Apr 13 16:10:26 2011 +0100
+++ b/tools/libxl/xl_cmdimpl.c  Mon Apr 18 16:12:16 2011 +0800
@@ -1089,6 +1089,20 @@ skip_vfb:
             dm_info->sdl = l;
         if (!xlu_cfg_get_long (config, "opengl", &l))
             dm_info->opengl = l;
+        if (!xlu_cfg_get_long (config, "spice", &l))
+            dm_info->spice = l;
+        if (!xlu_cfg_get_long (config, "spiceport", &l))
+            dm_info->spiceport = l;
+        if (!xlu_cfg_get_long (config, "spicetls_port", &l))
+            dm_info->spicetls_port = l;
+        xlu_cfg_replace_string (config, "spicehost", &dm_info->spicehost);
+        if (!xlu_cfg_get_long (config, "spicedisable_ticketing", &l))
+            dm_info->spicedisable_ticketing = l;
+        xlu_cfg_replace_string (config, "spicepasswd", &dm_info->spicepasswd);
+        if (!xlu_cfg_get_long (config, "spiceagent_mouse", &l))
+            dm_info->spiceagent_mouset = l;
+        else
+            dm_info->spiceagent_mouset = 1;
         if (!xlu_cfg_get_long (config, "nographic", &l))
             dm_info->nographic = l;
         if (!xlu_cfg_get_long (config, "gfx_passthru", &l))


==============================Appended patch============================================
Signed-off-by: Zhou Peng <zhoupeng@xxxxxxxxxxxxxxx>

tool/libxl: mistake apic for acpi in libxl__build_device_model_args_old/new
It may be advisedly coded for some reason, then it can be a mistake of my understanding.

diff -r 6871474a2a09 -r 01f8b29dda8e tools/libxl/libxl_dm.c
--- a/tools/libxl/libxl_dm.c    Fri Apr 15 10:06:59 2011 +0800
+++ b/tools/libxl/libxl_dm.c    Fri Apr 15 15:17:42 2011 +0800
@@ -120,7 +120,7 @@ static char ** libxl__build_device_model
         if (info->soundhw) {
             flexarray_vappend(dm_args, "-soundhw", info->soundhw, NULL);
         }
-        if (info->apic) {
+        if (info->acpi) {
             flexarray_append(dm_args, "-acpi");
         }
         if (info->vcpus > 1) {
@@ -268,7 +268,7 @@ static char ** libxl__build_device_model
         if (info->soundhw) {
             flexarray_vappend(dm_args, "-soundhw", info->soundhw, NULL);
         }
-        if (!info->apic) {
+        if (!info->acpi) {
             flexarray_append(dm_args, "-no-acpi");
         }
         if (info->vcpus > 1) {


--
Zhou Peng
Operating System Technology Group
Institute of Software, the Chinese Academy of Sciences (ISCAS)

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel