|
@@ -47,25 +47,25 @@ typedef struct SaveVMHandlers {
|
|
/* This runs outside the iothread lock! */
|
|
/* This runs outside the iothread lock! */
|
|
int (*save_setup)(QEMUFile *f, void *opaque);
|
|
int (*save_setup)(QEMUFile *f, void *opaque);
|
|
/* Note for save_live_pending:
|
|
/* Note for save_live_pending:
|
|
- * - res_precopy_only is for data which must be migrated in precopy phase
|
|
|
|
- * or in stopped state, in other words - before target vm start
|
|
|
|
- * - res_compatible is for data which may be migrated in any phase
|
|
|
|
- * - res_postcopy_only is for data which must be migrated in postcopy phase
|
|
|
|
- * or in stopped state, in other words - after source vm stop
|
|
|
|
|
|
+ * must_precopy:
|
|
|
|
+ * - must be migrated in precopy or in stopped state
|
|
|
|
+ * - i.e. must be migrated before target start
|
|
*
|
|
*
|
|
- * Sum of res_postcopy_only, res_compatible and res_postcopy_only is the
|
|
|
|
- * whole amount of pending data.
|
|
|
|
|
|
+ * can_postcopy:
|
|
|
|
+ * - can migrate in postcopy or in stopped state
|
|
|
|
+ * - i.e. can migrate after target start
|
|
|
|
+ * - some can also be migrated during precopy (RAM)
|
|
|
|
+ * - some must be migrated after source stops (block-dirty-bitmap)
|
|
|
|
+ *
|
|
|
|
+ * Sum of can_postcopy and must_postcopy is the whole amount of
|
|
|
|
+ * pending data.
|
|
*/
|
|
*/
|
|
/* This estimates the remaining data to transfer */
|
|
/* This estimates the remaining data to transfer */
|
|
- void (*state_pending_estimate)(void *opaque,
|
|
|
|
- uint64_t *res_precopy_only,
|
|
|
|
- uint64_t *res_compatible,
|
|
|
|
- uint64_t *res_postcopy_only);
|
|
|
|
|
|
+ void (*state_pending_estimate)(void *opaque, uint64_t *must_precopy,
|
|
|
|
+ uint64_t *can_postcopy);
|
|
/* This calculate the exact remaining data to transfer */
|
|
/* This calculate the exact remaining data to transfer */
|
|
- void (*state_pending_exact)(void *opaque,
|
|
|
|
- uint64_t *res_precopy_only,
|
|
|
|
- uint64_t *res_compatible,
|
|
|
|
- uint64_t *res_postcopy_only);
|
|
|
|
|
|
+ void (*state_pending_exact)(void *opaque, uint64_t *must_precopy,
|
|
|
|
+ uint64_t *can_postcopy);
|
|
LoadStateHandler *load_state;
|
|
LoadStateHandler *load_state;
|
|
int (*load_setup)(QEMUFile *f, void *opaque);
|
|
int (*load_setup)(QEMUFile *f, void *opaque);
|
|
int (*load_cleanup)(void *opaque);
|
|
int (*load_cleanup)(void *opaque);
|