[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC / PATCH] libxl: Prevent qemu closing QMP socket on shutdown before libxl is done with it.
On Tue, 2015-01-27 at 13:41 +0000, Stefano Stabellini wrote: > On Tue, 27 Jan 2015, Sander Eikelenboom wrote: > > Monday, January 26, 2015, 1:12:16 PM, you wrote: > > > > > On Thu, 22 Jan 2015, Sander Eikelenboom wrote: > > >> While this fixes the race and error on shutdown of a HVM guest with > > >> pci-passthrough, > > >> i don't know if this could give problems in other areas (migration ?), > > >> hence posted as RFC. > > > > > I think the patch should be OK. Maybe you could test it with local > > > migration (migrating a guest to localhost) and tell us if everything is > > > OK? > > > > Hi stefano, > > > > I'm not too experienced with migration, but a simple: > > "xl -v migrate domid localhost" still seems to work with this patch. > > Yep, that's the one. > > In that case: > > Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Applied. Sander please wrap your commit logs (the bits which aren't log quotations at least) to <80 (ideally <75) in the future. > > > -- > > Sander > > > > > If so, I think it should be committed. > > > > > > >> -- > > >> Sander > > >> > > >> 8< ----------- > > >> At present on shutdown when using pci-passthrough with qemu-xen, qemu > > >> closes the QMP > > >> socket before libxl is done with it causing these errors to be logged by > > >> libxl: > > >> > > >> Waiting for domain test (domid 1) to die [pid 11568] > > >> Domain 1 has shut down, reason code 0 0x0 > > >> Action for shutdown reason code 0 is destroy > > >> Domain 1 needs to be cleaned up: destroying the domain > > >> libxl: error: libxl_qmp.c:443:qmp_next: Socket read error: > > >> Connection reset by peer > > >> libxl: error: libxl_qmp.c:701:libxl__qmp_initialize: Failed to > > >> connect to QMP > > >> libxl: error: libxl_qmp.c:686:libxl__qmp_initialize: Connection > > >> error: Connection refused > > >> libxl: error: libxl_dm.c:1588:kill_device_model: Device Model > > >> already exited > > >> Done. Exiting now > > >> > > >> Prevent this by using the qemu '-no-shutdown' parameter which is > > >> described as doing: > > >> "Donât exit QEMU on guest shutdown, but instead only stop the > > >> emulation. > > >> This allows for instance switching to monitor to commit changes to > > >> the disk image." > > >> > > >> So Qemu will stop emulating, but keeps the QMP socket open and waits for > > >> libxl to > > >> kill the qemu process when it is done, preventing the race and resulting > > >> in this > > >> to be logged by libxl: > > >> > > >> Waiting for domain test (domid 1) to die [pid 10859] > > >> Domain 1 has shut down, reason code 0 0x0 > > >> Action for shutdown reason code 0 is destroy > > >> Domain 1 needs to be cleaned up: destroying the domain > > >> Done. Exiting now > > >> > > >> Signed-off-by: Sander Eikelenboom <linux@xxxxxxxxxxxxxx> > > >> --- > > >> tools/libxl/libxl_dm.c | 1 + > > >> 1 file changed, 1 insertion(+) > > >> > > >> diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c > > >> index fc3f5a7..3152c87 100644 > > >> --- a/tools/libxl/libxl_dm.c > > >> +++ b/tools/libxl/libxl_dm.c > > >> @@ -435,6 +435,7 @@ static char ** > > >> libxl__build_device_model_args_new(libxl__gc *gc, > > >> > > >> "path=%s/qmp-libxl-%d,server,nowait", > > >> libxl__run_dir_path(), > > >> guest_domid)); > > >> > > >> + flexarray_append(dm_args, "-no-shutdown"); > > >> flexarray_append(dm_args, "-mon"); > > >> flexarray_append(dm_args, "chardev=libxl-cmd,mode=control"); > > >> > > >> -- > > >> 1.7.10.4 > > >> > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |