[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 04/10] libxl: synchronize device removal when using driver domains
Roger Pau Monne writes ("[PATCH v2 04/10] libxl: synchronize device removal when using driver domains"): > Synchronize the clean up of the backend from the toolstack domain when > the driver domain has actually finished closing the backend for the > device. > > This is accomplished by waiting for the driver domain to remove the > directory containing the backend keys, then the toolstack domain will > finish the cleanup by removing the empty folders on the backend path. ... > diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c > index d726f0b..8987434 100644 > --- a/tools/libxl/libxl_device.c > +++ b/tools/libxl/libxl_device.c > @@ -443,6 +443,11 @@ void libxl__prepare_ao_device(libxl__ao *ao, > libxl__ao_device *aodev) > aodev->num_exec = 0; > /* Initialize timer for QEMU Bodge and hotplug execution */ > libxl__ev_time_init(&aodev->timeout); > + /* > + * Initialize xs_watch, because it's not used on all possible > + * execution paths, but it's unconditionally destroyed when finished. > + */ > + libxl__ev_xswatch_init(&aodev->xs_watch); FWIW I think this is entirely unremarkable and does not deserve a comment. Every field in the newly created aodev should be initialised. The fact that it wasn't was a latent bug. So I would mention that in the commit message instead. But I don't feel strongly about this so keep it as it is if you like. And there are several other similar comments in the same function. > static void device_hotplug_clean(libxl__gc *gc, libxl__ao_device *aodev); > @@ -781,12 +794,14 @@ void libxl__initiate_device_remove(libxl__egc *egc, > LOG(ERROR, "unable to get info for domain %d", domid); > goto out; > } > + > if (QEMU_BACKEND(aodev->dev) && > (info.paused || info.dying || info.shutdown)) { > /* > * TODO: 4.2 Bodge due to QEMU, see comment on top of > * libxl__initiate_device_remove in libxl_internal.h > */ > + > rc = libxl__ev_time_register_rel(gc, &aodev->timeout, > device_qemu_timeout, > LIBXL_QEMU_BODGE_TIMEOUT * 1000); Unintentional whitespace changes ? Aside from that, this patch all looks good to me. Thanks, Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |