[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 2/2] 4.1.2 blktap2 cleanup fixes.
On Wed, 2012-11-07 at 02:07 +0000, Dr. Greg Wettstein wrote: > --------------------------------------------------------------------------- > The following patch when applied on top of: > > libxl: attempt to cleanup tapdisk processes on disk backend destroy. > > Establishes correct cleanup behavior for blktap devices. This patch > implements the release of the backend device before calling for > the destruction of the userspace component of the blktap device. > > Without this patch the kernel xen-blkback driver deadlocks with > the blktap2 user control plane until the IPC channel is terminated by the > timeout on the select() call. This results in a noticeable delay > in the termination of the guest and causes the blktap minor > number which had been allocated to be orphaned. > > Signed-off-by: Greg Wettstein <greg@xxxxxxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> > diff -r b184698e0893 tools/libxl/libxl_blktap2.c > --- a/tools/libxl/libxl_blktap2.c Tue Nov 06 19:53:48 2012 -0600 > +++ b/tools/libxl/libxl_blktap2.c Tue Nov 06 19:54:23 2012 -0600 > @@ -59,6 +59,7 @@ void libxl__device_destroy_tapdisk(libxl > char *path, *params, *type, *disk; > int err; > tap_list_t tap; > + libxl_ctx *ctx = libxl__gc_owner(gc); > > path = libxl__sprintf(gc, "%s/tapdisk-params", be_path); > if (!path) return; > @@ -75,5 +76,11 @@ void libxl__device_destroy_tapdisk(libxl > err = tap_ctl_find(type, disk, &tap); > if (err < 0) return; > > + /* > + * Remove the instance of the backend device to avoid a deadlock with the > + * removal of the tap device. > + */ > + xs_rm(ctx->xsh, XBT_NULL, be_path); > + > tap_ctl_destroy(tap.id, tap.minor); > } > diff -r b184698e0893 tools/libxl/libxl_device.c > --- a/tools/libxl/libxl_device.c Tue Nov 06 19:53:48 2012 -0600 > +++ b/tools/libxl/libxl_device.c Tue Nov 06 19:54:23 2012 -0600 > @@ -250,8 +250,7 @@ int libxl__device_destroy(libxl_ctx *ctx > if (!state) > goto out; > if (atoi(state) != 4) { > - libxl__device_destroy_tapdisk(&gc, be_path); > - xs_rm(ctx->xsh, XBT_NULL, be_path); > + libxl__device_destroy_tapdisk(&gc, be_path); > goto out; > } > > --------------------------------------------------------------------------- > > As always, > Dr. G.W. Wettstein, Ph.D. Enjellic Systems Development, LLC. > 4206 N. 19th Ave. Specializing in information infra-structure > Fargo, ND 58102 development. > PH: 701-281-1686 > FAX: 701-281-3949 EMAIL: greg@xxxxxxxxxxxx > ------------------------------------------------------------------------------ > "Fungus doesn't take a vacation." > -- Rob Pike > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxx > http://lists.xen.org/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |