[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: [PATCH] xen: introduce xen_change_state_handler
On Thu, 30 Jun 2011, Alexander Graf wrote: > On 06/29/2011 01:16 PM, stefano.stabellini@xxxxxxxxxxxxx wrote: > > From: Anthony PERARD<anthony.perard@xxxxxxxxxx> > > > > Remove the call to xenstore_record_dm_state from xen_main_loop_prepare > > that is HVM specific. > > Add a new vm_change_state_handler shared between xen_pv and xen_hvm > > machines to record the VM state to xenstore. > > > > Signed-off-by: Anthony PERARD<anthony.perard@xxxxxxxxxx> > > Signed-off-by: Stefano Stabellini<stefano.stabellini@xxxxxxxxxxxxx> > > --- > > xen-all.c | 25 ++++++++++++++++++------- > > 1 files changed, 18 insertions(+), 7 deletions(-) > > > > diff --git a/xen-all.c b/xen-all.c > > index 3fd04ef..e8da35f 100644 > > --- a/xen-all.c > > +++ b/xen-all.c > > @@ -797,12 +797,17 @@ void xenstore_store_pv_console_info(int i, > > CharDriverState *chr) > > } > > } > > > > -static void xenstore_record_dm_state(XenIOState *s, const char *state) > > +static void xenstore_record_dm_state(struct xs_handle *xs, const char > > *state) > > { > > char path[50]; > > > > + if (xs == NULL) { > > + fprintf(stderr, "xenstore connection not initialized\n"); > > + exit(1); > > + } > > + > > snprintf(path, sizeof (path), > > "/local/domain/0/device-model/%u/state", xen_domid); > > - if (!xs_write(s->xenstore, XBT_NULL, path, state, strlen(state))) { > > + if (!xs_write(xs, XBT_NULL, path, state, strlen(state))) { > > fprintf(stderr, "error recording dm state\n"); > > exit(1); > > } > > @@ -823,15 +828,20 @@ static void xen_main_loop_prepare(XenIOState *state) > > if (evtchn_fd != -1) { > > qemu_set_fd_handler(evtchn_fd, cpu_handle_ioreq, NULL, state); > > } > > - > > - /* record state running */ > > - xenstore_record_dm_state(state, "running"); > > } > > > > > > /* Initialise Xen */ > > > > -static void xen_vm_change_state_handler(void *opaque, int running, int > > reason) > > +static void xen_change_state_handler(void *opaque, int running, int reason) > > +{ > > + if (running) { > > + /* record state running */ > > + xenstore_record_dm_state(xenstore, "running"); > > + } > > So where is this ever executed in the PV case? qemu_add_vm_change_state_handler(xen_change_state_handler, NULL) is now called by xen_init, that is common between xen_pv and xen_fv machines _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |