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

[Xen-devel] [PATCH 6/7] libxenlight meta-resend: domain resume



Added libxenlight implementation for resume domain.
This brings back a cooperative pv domain from the
shutdown state after save, enabling checkpointing.

Signed-off-by: Andres Lagar-Cavilla <andres@xxxxxxxxxxxxxxxx>


# HG changeset patch
# User Andres Lagar-Cavilla <andres@xxxxxxxxxxxxxxxx>
# Date 1259767910 18000
# Node ID f39b04723026235f08002252427d5082b36ee126
# Parent  4ce3fd759e994f9bb2588492f59346dccd54bd92
Added libxenlight implementation for resume domain.
This brings back a cooperative pv domain from the 
shutdown state after save, enabling checkpointing.

Signed-off-by: Andres Lagar-Cavilla <andres@xxxxxxxxxxxxxxxx>

diff -r 4ce3fd759e99 -r f39b04723026 libxl.c
--- a/libxl.c
+++ b/libxl.c
@@ -264,6 +264,28 @@ int libxl_domain_restore(struct libxl_ct
     return 0;
 }
 
+int libxl_domain_resume(struct libxl_ctx *ctx, uint32_t domid)
+{
+    if (is_hvm(ctx, domid)) {
+        XL_LOG(ctx, XL_LOG_DEBUG, "Called domain_resume on "
+                "non-cooperative hvm domain %u", domid);
+        return ERROR_NI;
+    }
+    if (xc_domain_resume(ctx->xch, domid, 1)) {
+        XL_LOG_ERRNO(ctx, XL_LOG_ERROR, 
+                        "xc_domain_resume failed for domain %u", 
+                        domid);
+        return ERROR_FAIL;
+    }
+    if (!xs_resume_domain(ctx->xsh, domid)) {
+        XL_LOG_ERRNO(ctx, XL_LOG_ERROR, 
+                        "xs_resume_domain failed for domain %u", 
+                        domid);
+        return ERROR_FAIL;
+    }
+    return 0;
+}
+
 struct libxl_dominfo * libxl_domain_list(struct libxl_ctx *ctx, int *nb_domain)
 {
     struct libxl_dominfo *ptr;
diff -r 4ce3fd759e99 -r f39b04723026 libxl.h
--- a/libxl.h
+++ b/libxl.h
@@ -262,6 +262,7 @@ int libxl_domain_restore(struct libxl_ct
                          libxl_device_model_info *dm_info);
 int libxl_domain_suspend(struct libxl_ctx *ctx, libxl_domain_suspend_info 
*info,
                           uint32_t domid, int fd);
+int libxl_domain_resume(struct libxl_ctx *ctx, uint32_t domid);
 int libxl_domain_shutdown(struct libxl_ctx *ctx, uint32_t domid, int req);
 int libxl_domain_destroy(struct libxl_ctx *ctx, uint32_t domid, int force);
 
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

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