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
|