Currently it is not forbidden to use "-object memory-backend-file,share=on"
and together with "-incoming". But after incoming migration is finished,
the memory-backend-file will be definitely written if share=on. So the
memory-backend-file can only be used once, but failed in the 2nd time
incoming.
Thus it gives a warning and the users can run the qemu if they really
want to do it.
Signed-off-by: Catherine Ho <catherine.hecx@gmail.com>
---
backends/hostmem-file.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/backends/hostmem-file.c b/backends/hostmem-file.c
index 37ac6445d2..ce03dc0a18 100644
--- a/backends/hostmem-file.c
+++ b/backends/hostmem-file.c
@@ -16,6 +16,7 @@
#include "sysemu/hostmem.h"
#include "sysemu/sysemu.h"
#include "qom/object_interfaces.h"
+#include "migration/migration.h"
/* hostmem-file.c */
/**
@@ -79,6 +80,17 @@ file_backend_memory_alloc(HostMemoryBackend *backend, Error **errp)
}
}
+ /*
+ * In ignore shared incoming migration, if share=on for host memory
+ * backend file, the ram might be modified after incoming process.
+ * The user should know this potential risk.
+ */
+ if (backend->share && migrate_ignore_shared()
+ && runstate_check(RUN_STATE_INMIGRATE))
+ warn_report("NOTE: Please make sure the data on the shared memory "
+ "backend file and the data from the incoming migration"
+ " stream contains matching contents, otherwise...");
+
backend->force_prealloc = mem_prealloc;
name = host_memory_backend_get_name(backend);
memory_region_init_ram_from_file(&backend->mr, OBJECT(backend),
--
2.17.1