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. -- 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 <li...@eikelenboom.it> >> --- >> 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@lists.xen.org http://lists.xen.org/xen-devel