@@ -30,6 +30,7 @@ typedef enum PrecopyNotifyReason {
void precopy_infrastructure_init(void);
void precopy_add_notifier(Notifier *n);
void precopy_remove_notifier(Notifier *n);
+void precopy_disable_bulk_stage(void);
void ram_mig_init(void);
void qemu_guest_free_page_hint(void *addr, size_t len);
@@ -352,6 +352,15 @@ static void precopy_notify(PrecopyNotifyReason reason)
notifier_list_notify(&precopy_notifier_list, &reason);
}
+void precopy_disable_bulk_stage(void)
+{
+ if (!ram_state) {
+ return;
+ }
+
+ ram_state->ram_bulk_stage = false;
+}
+
uint64_t ram_bytes_remaining(void)
{
return ram_state ? (ram_state->migration_dirty_pages * TARGET_PAGE_SIZE) :
This patch adds a function to enable a precopy notifier callback outside the migration subsystem to disable the bulk stage flag. This is needed by the free page optimization offered by virtio-balloon. 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> --- include/migration/misc.h | 1 + migration/ram.c | 9 +++++++++ 2 files changed, 10 insertions(+)