On 26/09/17 12:02, Andrew Cooper wrote:
On 25/09/17 19:55, Jennifer Herbert wrote:
@@ -46,7 +60,22 @@ struct save_callbacks {
*/
int (*suspend)(void* data);
- /* Called after the guest's dirty pages have been
+ /*
+ * Called before and after every batch of page data sent during
+ * the precopy phase of a live migration to ask the caller what
+ * to do next based on the current state of the precopy migration.
How is the callback supposed to determine whether it is before or ahead
of the data batch?
As far as I can tell, its not possible.
~Andrew
You look at the dirty_count. It works well for me.
I can add that info to the comment.
-jenny
+ *
+ * Should return one of the values listed below:
+ */
+#define XGS_POLICY_ABORT (-1) /* Abandon the migration entirely
+ * and tidy up. */
+#define XGS_POLICY_CONTINUE_PRECOPY 0 /* Remain in the precopy phase. */
+#define XGS_POLICY_STOP_AND_COPY 1 /* Immediately suspend and transmit the
+ * remaining dirty pages. */
+ precopy_policy_t precopy_policy;
+
+ /*
+ * Called after the guest's dirty pages have been
* copied into an output buffer.
* Callback function resumes the guest & the device model,
* returns to xc_domain_save.
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel