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.h...@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