[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 4 of 6] libxl: support suspend_cancel in domain_resume

On Tue, Jan 31, 2012 at 2:00 AM, Ian Campbell <Ian.Campbell@xxxxxxxxxx> wrote:
On Tue, 2012-01-31 at 01:05 +0000, rshriram@xxxxxxxxx wrote:Please can you add a few words about what fast means and when its use
would be appropriate.

I'm not sure fast is right word -- it happens that this mechanism is
faster but isn't the real meaning "co-operative" or something along
those lines?

Would a better name be libxl_domain_suspend_cancel, sharing a common
helper internally with libxl_domain_resume?

The explanation is already there, on top of xc_domain_resume in libxc.
fast suspend - hvm guest checks for the return code of the shutdown call. If it returns 1,
  then it just resumes, else shuts down. (similar case for PV guest)

if fast = 0, then the guest is led to believe that it is resuming in a new host (ie wakeup
from hibernate sorts).
As for guests supporting this fast suspend, almost all guests (pv/hvm linux/windows)
do support suspend_cancel. IIRC, I think some very old kernels didnt have this ability.


>  int libxl_domain_shutdown(libxl_ctx *ctx, uint32_t domid);
>  int libxl_domain_reboot(libxl_ctx *ctx, uint32_t domid);
>  int libxl_domain_destroy(libxl_ctx *ctx, uint32_t domid);
> diff -r cd3d43d88c05 -r efe92d80c474 tools/libxl/xl_cmdimpl.c
> --- a/tools/libxl/xl_cmdimpl.c        Mon Jan 30 16:58:31 2012 -0800
> +++ b/tools/libxl/xl_cmdimpl.c        Mon Jan 30 16:58:47 2012 -0800
> @@ -2751,7 +2751,7 @@ static void migrate_domain(const char *d
>          if (common_domname) {
>              libxl_domain_rename(ctx, domid, away_domname, common_domname);
>          }
> -        rc = libxl_domain_resume(ctx, domid);
> +        rc = libxl_domain_resume(ctx, domid, 1);
>          if (!rc) fprintf(stderr, "migration sender: Resumed OK.\n");
>          fprintf(stderr, "Migration failed due to problems at target.\n");
> @@ -2773,7 +2773,7 @@ static void migrate_domain(const char *d
>      close(send_fd);
>      migration_child_report(child, recv_fd);
>      fprintf(stderr, "Migration failed, resuming at sender.\n");
> -    libxl_domain_resume(ctx, domid);
> +    libxl_domain_resume(ctx, domid, 1);
>      exit(-ERROR_FAIL);
>   failed_badly:

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.