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

Re: [Xen-devel] [PATCH v2 3/6] libxc/migration: Be rather stricter with illformed callers



On Mon, 2015-05-11 at 12:47 +0100, Andrew Cooper wrote:
> On 11/05/15 12:33, Ian Campbell wrote:
> > On Fri, 2015-05-08 at 22:14 +0100, Andrew Cooper wrote:
> >> The migration code itself should be able to validly assume all mandatory
> >> callbacks are set up.
> >>
> >> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> >> CC: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
> >> CC: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
> >> CC: Wei Liu <wei.liu2@xxxxxxxxxx>
> >> CC: Yang Hongyang <yanghy@xxxxxxxxxxxxxx>
> >> ---
> >>  tools/libxc/xc_sr_save.c         |    4 ++++
> >>  tools/libxc/xc_sr_save_x86_hvm.c |    7 -------
> >>  2 files changed, 4 insertions(+), 7 deletions(-)
> >>
> >> diff --git a/tools/libxc/xc_sr_save.c b/tools/libxc/xc_sr_save.c
> >> index 5d9c267..83f0591 100644
> >> --- a/tools/libxc/xc_sr_save.c
> >> +++ b/tools/libxc/xc_sr_save.c
> >> @@ -738,6 +738,10 @@ int xc_domain_save2(xc_interface *xch, int io_fd, 
> >> uint32_t dom,
> >>      ctx.save.max_iterations = 5;
> >>      ctx.save.dirty_threshold = 50;
> >>  
> >> +    /* Sanity checks for callbacks. */
> >> +    if ( hvm )
> >> +        assert(callbacks->switch_qemu_logdirty);
> > assert(!hvm || callbacks->switch_qemu_logdirty)
> >
> > ?
> 
> I would argue that the former is far easier to read.

I read this as "assert that either the guest is not an  hvm guest or the
callback is provided", but fair enough.

> The intention for this, and a subsequent patch, is "if (some option)
> assert(mandatory callbacks for option)"
> 
> ~Andrew
> 
> >
> >> +
> >>      IPRINTF("In experimental %s", __func__);
> >>      DPRINTF("fd %d, dom %u, max_iters %u, max_factor %u, flags %u, hvm 
> >> %d",
> >>              io_fd, dom, max_iters, max_factor, flags, hvm);
> >> diff --git a/tools/libxc/xc_sr_save_x86_hvm.c 
> >> b/tools/libxc/xc_sr_save_x86_hvm.c
> >> index 8baa104..58efdb9 100644
> >> --- a/tools/libxc/xc_sr_save_x86_hvm.c
> >> +++ b/tools/libxc/xc_sr_save_x86_hvm.c
> >> @@ -166,13 +166,6 @@ static int x86_hvm_setup(struct xc_sr_context *ctx)
> >>  {
> >>      xc_interface *xch = ctx->xch;
> >>  
> >> -    if ( !ctx->save.callbacks->switch_qemu_logdirty )
> >> -    {
> >> -        ERROR("No switch_qemu_logdirty callback provided");
> >> -        errno = EINVAL;
> >> -        return -1;
> >> -    }
> >> -
> >>      if ( ctx->save.callbacks->switch_qemu_logdirty(
> >>               ctx->domid, 1, ctx->save.callbacks->data) )
> >>      {
> >
> 



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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