]> git.proxmox.com Git - mirror_qemu.git/commit
exec/memory: Introduce RAM_NAMED_FILE flag
authorSteve Sistare <steven.sistare@oracle.com>
Wed, 7 Jun 2023 15:18:36 +0000 (08:18 -0700)
committerPhilippe Mathieu-Daudé <philmd@linaro.org>
Tue, 13 Jun 2023 09:28:58 +0000 (11:28 +0200)
commitb0182e537e5aba38031a5009cb16d5e924342458
tree67840f4419f12bc9de0005d2cbd0af316f2c4a3d
parent6fe4f6c941923608027e10af5dd30f18d481f9b9
exec/memory: Introduce RAM_NAMED_FILE flag

migrate_ignore_shared() is an optimization that avoids copying memory
that is visible and can be mapped on the target.  However, a
memory-backend-ram or a memory-backend-memfd block with the RAM_SHARED
flag set is not migrated when migrate_ignore_shared() is true.  This is
wrong, because the block has no named backing store, and its contents will
be lost.  To fix, ignore shared memory iff it is a named file.  Define a
new flag RAM_NAMED_FILE to distinguish this case.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Message-Id: <1686151116-253260-1-git-send-email-steven.sistare@oracle.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
backends/hostmem-file.c
include/exec/cpu-common.h
include/exec/memory.h
migration/ram.c
qapi/migration.json
softmmu/physmem.c