[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] libxl: Rewind toolstack_save_fd in libxl_save_helper when using remus
On 20/06/14 07:59, Yang Hongyang wrote: > commit(b327a3f421bb57d262b7d1fb3c43b710852b103b) move the rewinding > of toolstack_save_fd to libxl, this breaks remus, because in remus > mode, toolstack_save_cb will be called in every checkpoint, if > we don't rewind it in libxl_save_helper, it will surely encounted > error. > > I know this fix is just a hack, in fact the whole toolstack save > thing should be done in libxl. But this fix should solve Jason's > case and remus thing. Until migration v2 is upstreamed, this fix > should be fine. > > Signed-off-by: Yang Hongyang <yanghy@xxxxxxxxxxxxxx> > CC: Jason Andryuk <andryuk@xxxxxxxx> > CC: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> > CC: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Hmm - this is very hacky, but I don't see an alternative. As b327a3f421 did regress remus, this fix should be taken. It will only be temporary until the libxl layering violation fixes from migration v2 appear. Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> > --- > tools/libxl/libxl_save_helper.c | 8 +++++++- > 1 files changed, 7 insertions(+), 1 deletions(-) > > diff --git a/tools/libxl/libxl_save_helper.c b/tools/libxl/libxl_save_helper.c > index b259bd0..4619fa3 100644 > --- a/tools/libxl/libxl_save_helper.c > +++ b/tools/libxl/libxl_save_helper.c > @@ -159,6 +159,7 @@ int helper_getreply(void *user) > > static int toolstack_save_fd; > static uint32_t toolstack_save_len; > +static struct save_callbacks helper_save_callbacks; > > static int toolstack_save_cb(uint32_t domid, uint8_t **buf, > uint32_t *len, void *data) > @@ -167,6 +168,12 @@ static int toolstack_save_cb(uint32_t domid, uint8_t > **buf, > > assert(toolstack_save_fd > 0); > > + /* This is a hack for remus */ > + if (helper_save_callbacks.checkpoint) { > + r = lseek(toolstack_save_fd, 0, SEEK_SET); > + if (r) fail(errno,"rewind toolstack data tmpfile"); > + } > + > *buf = xmalloc(toolstack_save_len); > r = read_exactly(toolstack_save_fd, *buf, toolstack_save_len); > if (r<0) fail(errno,"read toolstack data"); > @@ -191,7 +198,6 @@ static void complete(int retval) { > exit(0); > } > > -static struct save_callbacks helper_save_callbacks; > static struct restore_callbacks helper_restore_callbacks; > > int main(int argc, char **argv) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |