[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] libxl: Introduce migrate with the new QEMU.
# HG changeset patch # User Anthony PERARD <anthony.perard@xxxxxxxxxx> # Date 1322762983 0 # Node ID b776fcd4a15c29f9e93bf6ebb037d90c5e92644b # Parent 754750313914ff26487c8498d827daeb099cdf70 libxl: Introduce migrate with the new QEMU. Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Acked-by: Ian Jackson <ian.jackson.citrix.com> Committed-by: Ian Jackson <ian.jackson.citrix.com> --- diff -r 754750313914 -r b776fcd4a15c tools/libxl/libxl_dm.c --- a/tools/libxl/libxl_dm.c Thu Dec 01 18:09:42 2011 +0000 +++ b/tools/libxl/libxl_dm.c Thu Dec 01 18:09:43 2011 +0000 @@ -408,8 +408,10 @@ } } if (info->saved_state) { - flexarray_append(dm_args, "-loadvm"); - flexarray_append(dm_args, info->saved_state); + /* This file descriptor is meant to be used by QEMU */ + int migration_fd = open(info->saved_state, O_RDONLY); + flexarray_append(dm_args, "-incoming"); + flexarray_append(dm_args, libxl__sprintf(gc, "fd:%d", migration_fd)); } for (i = 0; info->extra && info->extra[i] != NULL; i++) flexarray_append(dm_args, info->extra[i]); diff -r 754750313914 -r b776fcd4a15c tools/libxl/libxl_dom.c --- a/tools/libxl/libxl_dom.c Thu Dec 01 18:09:42 2011 +0000 +++ b/tools/libxl/libxl_dom.c Thu Dec 01 18:09:43 2011 +0000 @@ -613,9 +613,31 @@ struct stat st; uint32_t qemu_state_len; - LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "Saving device model state to %s", filename); - libxl__xs_write(gc, XBT_NULL, libxl__sprintf(gc, "/local/domain/0/device-model/%d/command", domid), "save"); - libxl__wait_for_device_model(gc, domid, "paused", NULL, NULL, NULL); + switch (libxl__device_model_version_running(gc, domid)) { + case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: { + char *path = NULL; + LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, + "Saving device model state to %s", filename); + path = libxl__sprintf(gc, "/local/domain/0/device-model/%d/command", + domid); + libxl__xs_write(gc, XBT_NULL, path, "save"); + libxl__wait_for_device_model(gc, domid, "paused", NULL, NULL, NULL); + break; + } + case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: + fd2 = open(filename, O_WRONLY | O_CREAT | O_TRUNC); + if (fd2 < 0) { + LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, + "Unable to create a QEMU save file\n"); + return ERROR_FAIL; + } + /* Save DM state into fd2 */ + if (libxl__qmp_migrate(gc, domid, fd2)) + return ERROR_FAIL; + break; + default: + return ERROR_INVAL; + } if (stat(filename, &st) < 0) { _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |