|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 4 of 5 V3] tools/libxl: Control network buffering in remus callbacks [and 1 more messages]
Shriram Rajagopalan writes ("Re: [PATCH 4 of 5 V3] tools/libxl: Control network
buffering in remus callbacks"):
> Nanosleep was more of my personal preference,
I don't think that's a good enough reason for the churn, but as I say
this really ought to be replaced with use of a timeout event.
> just as the '!!' above was Andrew's suggestion, due to the fact that
> libxl__domain_suspend_common_callback() does not strictly return
> boolean.
Are you looking at a different tree to me ? I have checked the return
statements in libxl__domain_suspend_common_callback and they are all
"return 0" or "return 1".
> But I agree that renaming that variable makes more sense.
Good :-). Thanks.
> As far as using the event loop timers, I couldn't find anything
> suitable in libxl_event.h/c that I could use instead of
> usleep/nanosleep. Specifically, they were all asynchronous, while
> the caller of these functions is libxc's xc_domain_save infinite
> loop (synchronous).
No, you need to make it an asynchronous call.
The libxl save helper machinery arranges to run xc_domain_save in a
subprocess so that the main program can continue asynchronously.
It's true that the suspend checkpoint is currently synchronous. It
needs to be made synchronous by telling the stub generator
(libxl_save_msgs_gen.pl) to generate an asynchronous binding, like it
does for switch_qemu_logdirty.
Perhaps it would be helpful if I provided a pre-patch to make that
change for you.
> > + if (!remus_ctx->netbuf_ctx) return is_suspended;
> > +
> > + if (is_suspended) {
> > + if (libxl__remus_netbuf_start_new_epoch(gc, dss->domid,
> > + remus_ctx))
> > + return !is_suspended;
>
> This construction is rather odd. Why return !is_suspended when you
> know that !!is_suspended ?
...
> If a new network buffer cannot be created (for the next epoch), then
> return an error. This ends up terminating the checkpointing process.
Yes. But why not "return 0" ?
Thanks,
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |