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

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

To: ZhouPeng <zpengxen@xxxxxxxxx>
Subject: [Xen-devel] Re: [PATCH] Play with spice for xen-upstream-qemu on upstream Xen
From: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Date: Mon, 18 Apr 2011 14:52:29 +0100
Cc: "Xen-Devel \(E-mail\)" <xen-devel@xxxxxxxxxxxxxxxxxxx>, Stefano Stabellini <Stefano.Stabellini@xxxxxxxxxxxxx>
Delivery-date: Mon, 18 Apr 2011 06:54:10 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <BANLkTi=9OBXN0fMaPEvrEityAqM-L6yPBQ@xxxxxxxxxxxxxx>
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>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Alpine 2.00 (DEB 1167 2008-08-23)
On Mon, 18 Apr 2011, ZhouPeng wrote:
> 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.
> 
> For detailed:
> http://code.google.com/p/spice4xen/wiki/Using_Upstream_Qemu

Cool! Does it mean that it works right now?


 
> 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 10:52:09 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 10:52:09 2011 +0800
> @@ -225,15 +225,44 @@ static char ** libxl__build_device_model
>  
>          if (strchr(listen, ':') != NULL)
>              flexarray_append(dm_args,
> -                    libxl__sprintf(gc, "%s%s", listen,
> -                        info->vncunused ? ",to=99" : ""));
> +                    libxl__sprintf(gc, "%s%s,%s", listen,
> +                        info->vncunused ? ",to=99" : "", info->vncpasswd));
>          else
>              flexarray_append(dm_args,
> -                    libxl__sprintf(gc, "%s:%d%s", listen, display,
> -                        info->vncunused ? ",to=99" : ""));
> +                    libxl__sprintf(gc, "%s:%d%s,%s", listen, display,
> +                        info->vncunused ? ",to=99" : "", info->vncpasswd));

This is not actually part of the spice support patch to libxl, is it?
It looks like a generic bug fix to the vncpasswd handling.
Could you please send it as a separate patch?


>      }
>      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");
> +        }

please return error here and let the caller handle the failure


> +
> +        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");
> +        }

same here: replace the asserts with return errors


> +        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 10:52:10 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======================

thanks for the patches, next time could you please send the patches
inline as plain text, each patch as a separate email?
See this document on how to send patches to the LKML as a reference:

http://www.mjmwired.net/kernel/Documentation/email-clients.txt


> 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.
> 

Thanks for the patch, I found the first version that you sent and reply
to it now.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel