On Tue, 2014-08-05 at 20:30 +0100, Wei Liu wrote:
On Tue, Aug 05, 2014 at 07:45:48PM +0100, Ian Campbell wrote:
[...]
> > > > Sure. I think having an API that emulates a power reset button would
be
> > > > a nice addition to libxl's domain operations. The destroy/start
> > > > approach incurs a small bit of overhead, which would be avoided with
> > > > such an API. Clients (perhaps incorrectly) implementing their own
> > > > notion of reset would also be avoided.
> > >
> > > I think this ought to become pretty easy once Wei's patches to record
> > > the guest cfg in libxl are completed. Wei -- what do you think?
> > >
> >
> > I don't think this "reset" API will need to record any state,
i.e. this
> > feature looks unrelated to my work. What do I miss?
>
> It's a forced reboot, so the API would need to destroy and then recreate
> the domain. Recreate would need to use the state your patches arrange
> for libxl to store.
>
Oh you were talking about pesisting state across hard reset, that's of
course achievable. I think hard reset is more or less the same as
reboot.
That's still somewhat orthogonal to my work though. Not having the
capability to presist state across in libxl doesn't prevent us from
introducing "reset". I think this is the status quo of "reboot" API,
isn't it?
There is no "reboot" API in the sense we are talking about.
libxl_domain_reboot() asks the guest to reboot itself. The resulting
actual reboot is handled by the toolstack receiving
LIBXL_EVENT_TYPE_DOMAIN_DEATH and using libxl_domain_destroy
+libxl_domain_create to recreate the domain, prior to your changes only
the toolstack app could do this because only xl/libvirt knew the actual
domain cfg. With your changes a new libxl_domain_hard_reboot could, I
think, be written which does the reboot.
Ian.