summaryrefslogtreecommitdiffstats
path: root/include/migration
diff options
context:
space:
mode:
authorWei Wang2018-12-11 09:24:51 +0100
committerDr. David Alan Gilbert2019-03-06 11:49:18 +0100
commitbd2270608fa0112108aafcba89b87282c68db741 (patch)
tree979a6b79d0f1a56f6fe6a134d77a6f5bf6acd312 /include/migration
parentmigration: API to clear bits of guest free pages from the dirty bitmap (diff)
downloadqemu-bd2270608fa0112108aafcba89b87282c68db741.tar.gz
qemu-bd2270608fa0112108aafcba89b87282c68db741.tar.xz
qemu-bd2270608fa0112108aafcba89b87282c68db741.zip
migration/ram.c: add a notifier chain for precopy
This patch adds a notifier chain for the memory precopy. This enables various precopy optimizations to be invoked at specific places. Signed-off-by: Wei Wang <wei.w.wang@intel.com> CC: Dr. David Alan Gilbert <dgilbert@redhat.com> CC: Juan Quintela <quintela@redhat.com> CC: Michael S. Tsirkin <mst@redhat.com> CC: Peter Xu <peterx@redhat.com> Reviewed-by: Peter Xu <peterx@redhat.com> Message-Id: <1544516693-5395-6-git-send-email-wei.w.wang@intel.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Diffstat (limited to 'include/migration')
-rw-r--r--include/migration/misc.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/migration/misc.h b/include/migration/misc.h
index 81ee347e35..dc46d3354f 100644
--- a/include/migration/misc.h
+++ b/include/migration/misc.h
@@ -20,6 +20,25 @@
/* migration/ram.c */
+typedef enum PrecopyNotifyReason {
+ PRECOPY_NOTIFY_SETUP = 0,
+ PRECOPY_NOTIFY_BEFORE_BITMAP_SYNC = 1,
+ PRECOPY_NOTIFY_AFTER_BITMAP_SYNC = 2,
+ PRECOPY_NOTIFY_COMPLETE = 3,
+ PRECOPY_NOTIFY_CLEANUP = 4,
+ PRECOPY_NOTIFY_MAX = 5,
+} PrecopyNotifyReason;
+
+typedef struct PrecopyNotifyData {
+ enum PrecopyNotifyReason reason;
+ Error **errp;
+} PrecopyNotifyData;
+
+void precopy_infrastructure_init(void);
+void precopy_add_notifier(NotifierWithReturn *n);
+void precopy_remove_notifier(NotifierWithReturn *n);
+int precopy_notify(PrecopyNotifyReason reason, Error **errp);
+
void ram_mig_init(void);
void qemu_guest_free_page_hint(void *addr, size_t len);