[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v10 6/7] migration/ram.c: add a function to disable
From: |
Wei Wang |
Subject: |
[Qemu-devel] [PATCH v10 6/7] migration/ram.c: add a function to disable the bulk stage |
Date: |
Mon, 3 Dec 2018 10:18:30 +0800 |
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 <address@hidden>
CC: Dr. David Alan Gilbert <address@hidden>
CC: Juan Quintela <address@hidden>
CC: Michael S. Tsirkin <address@hidden>
CC: Peter Xu <address@hidden>
---
include/migration/misc.h | 1 +
migration/ram.c | 9 +++++++++
2 files changed, 10 insertions(+)
diff --git a/include/migration/misc.h b/include/migration/misc.h
index 15f8d00..47e7ff5 100644
--- a/include/migration/misc.h
+++ b/include/migration/misc.h
@@ -37,6 +37,7 @@ 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 precopy_disable_bulk_stage(void);
void ram_mig_init(void);
void qemu_guest_free_page_hint(void *addr, size_t len);
diff --git a/migration/ram.c b/migration/ram.c
index b90a3f2..739dc97 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -354,6 +354,15 @@ int precopy_notify(PrecopyNotifyReason reason, Error
**errp)
return notifier_with_return_list_notify(&precopy_notifier_list, &pnd);
}
+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) :
--
1.8.3.1