[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 9 of 9] tools: notify restore to hangup during migration --abort_if_busy
# HG changeset patch # User Olaf Hering <olaf@xxxxxxxxx> # Date 1364481743 -3600 # Node ID 756d175cefa9885112b6d1337d1e855a223d94a9 # Parent 4bf71e887b838dd643399b8b8a65406d5f8eb94f tools: notify restore to hangup during migration --abort_if_busy If a guest is too busy to finish migration, the remote side is not notified and as a result an imcomplete, paused guest will remain on the remote side. Add a new flag to notify the receiver about the aborted migration so that both sides can cleanup properly. Signed-off-by: Olaf Hering <olaf@xxxxxxxxx> diff -r 4bf71e887b83 -r 756d175cefa9 tools/libxc/xc_domain_restore.c --- a/tools/libxc/xc_domain_restore.c +++ b/tools/libxc/xc_domain_restore.c @@ -983,6 +983,10 @@ static int pagebuf_get_one(xc_interface DPRINTF("read generation id buffer address"); return pagebuf_get_one(xch, ctx, buf, fd, dom); + case XC_SAVE_ID_BUSY_ABORT: + ERROR("Source host requested cancelation, guest is busy."); + errno = EBUSY; + return -1; default: if ( (count > MAX_BATCH_SIZE) || (count < 0) ) { ERROR("Max batch size exceeded (%d). Giving up.", count); diff -r 4bf71e887b83 -r 756d175cefa9 tools/libxc/xc_domain_save.c --- a/tools/libxc/xc_domain_save.c +++ b/tools/libxc/xc_domain_save.c @@ -1537,9 +1537,11 @@ int xc_domain_save(xc_interface *xch, in { if ( !min_reached && abort_if_busy ) { + unsigned int cmd = XC_SAVE_ID_BUSY_ABORT; ERROR("Live migration aborted, as requested. (guest too busy?)" " total_sent %lu iter %d, max_iters %u max_factor %u", total_sent, iter, max_iters, max_factor); + wrexact(io_fd, &cmd, sizeof(cmd)); print_stats(xch, dom, sent_this_iter, &time_stats, &shadow_stats, 1); rc = 1; goto out; diff -r 4bf71e887b83 -r 756d175cefa9 tools/libxc/xg_save_restore.h --- a/tools/libxc/xg_save_restore.h +++ b/tools/libxc/xg_save_restore.h @@ -259,6 +259,7 @@ #define XC_SAVE_ID_HVM_ACCESS_RING_PFN -16 #define XC_SAVE_ID_HVM_SHARING_RING_PFN -17 #define XC_SAVE_ID_TOOLSTACK -18 /* Optional toolstack specific info */ +#define XC_SAVE_ID_BUSY_ABORT -19 /* Source requested cancelation */ /* ** We process save/restore/migrate in batches of pages; the below _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |