[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 1/3] libxl: add 2 consoles to stubdoms for save/restore



On Wed, 19 Jan 2011, Ian Campbell wrote:
> On Tue, 2011-01-18 at 17:17 +0000, Stefano Stabellini wrote:
> > Add two "special" PV consoles to stubdoms that are going to be used
> > to send and receive the qemu-xen save files on save/restore.
> > 
> > Rename the save file on resume so that it doesn't collide with the name
> > of the next save file.
> > 
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
> > 
> > 
> > diff -r 59396addc940 tools/libxl/libxl.c
> > --- a/tools/libxl/libxl.c   Fri Jan 14 14:26:11 2011 +0000
> > +++ b/tools/libxl/libxl.c   Tue Jan 18 17:09:56 2011 +0000
> > @@ -750,7 +750,7 @@ int libxl_primary_console_exec(libxl_ctx
> >  {
> >      uint32_t stubdomid = libxl_get_stubdom_id(ctx, domid_vm);
> >      if (stubdomid)
> > -        return libxl_console_exec(ctx, stubdomid, 1, LIBXL_CONSTYPE_PV);
> > +        return libxl_console_exec(ctx, stubdomid, 3, LIBXL_CONSTYPE_PV);
> 
> #define STUBDOM_CONSOLE_xxx or an enum to give a symbolic name to each
> of the 3-4 console numbers.

good idea

> 
> >      else {
> >          if (libxl__domain_is_hvm(ctx, domid_vm))
> >              return libxl_console_exec(ctx, domid_vm, 0, 
> > LIBXL_CONSTYPE_SERIAL);
> > diff -r 59396addc940 tools/libxl/libxl_create.c
> > --- a/tools/libxl/libxl_create.c    Fri Jan 14 14:26:11 2011 +0000
> > +++ b/tools/libxl/libxl_create.c    Tue Jan 18 17:09:56 2011 +0000
> > @@ -250,8 +250,12 @@ static int domain_restore(libxl_ctx *ctx
> >  
> >      dm_info->saved_state = NULL;
> >      if (info->hvm) {
> > +        char buf[100];
> > +        snprintf(buf, sizeof(buf), "/var/lib/xen/qemu-save.%d", domid);
> >          ret = asprintf(&dm_info->saved_state,
> > -                       "/var/lib/xen/qemu-save.%d", domid);
> > +                       "/var/lib/xen/qemu-restore.%d", domid);
> 
> These two strings end up in a couple of places, probably worth either a
> #define or libxl__domain_dm_{save,restore}_path(...).
> 

considering that the restore string comes from libxc I'll go with an
#define


> char buf[100] is pretty ugly too. Either use the relevant libxl_Xprintf
> or a number much smaller than 100 since domid is bounded -- i.e.
> strlen("/var/lib/xen/qemu-save.") + strlen("65536") (+ 1?). 32 seems to
> be more than sufficient.
>

I am going to remove it and modify libxc to save to a different filename
in the first place


> [...]
> > +            case 1:
> > +                console[i].output = libxl__sprintf(&gc, 
> > "file:/var/lib/xen/qemu-save.%d", info->domid);
> > +                break;
> > +            case 2:
> > +                if (info->saved_state)
> > +                    console[i].output = libxl__sprintf(&gc, "filerw:%s", 
> > info->saved_state);
> 
> These "file:" and "filerw:" prefixed things are interpreted by qemu
> within the stub domain?

No, they are interpreted by the console backend in dom0


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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.