diff options
author | Steve Sistare <steven.sistare@oracle.com> | 2025-02-27 06:48:01 -0800 |
---|---|---|
committer | Fabiano Rosas <farosas@suse.de> | 2025-03-10 12:09:24 -0300 |
commit | 094a3dbc55df1bbd2169eaf784cb75b594a72941 (patch) | |
tree | a69d66ac646d68ba84400fbe178ca6e5ae62f909 /migration/savevm.c | |
parent | d657a14de5d597bbfe7b54e4c4f0646f440e98ad (diff) | |
download | qemu-094a3dbc55df1bbd2169eaf784cb75b594a72941.zip qemu-094a3dbc55df1bbd2169eaf784cb75b594a72941.tar.gz qemu-094a3dbc55df1bbd2169eaf784cb75b594a72941.tar.bz2 |
migration: ram block cpr blockers
Unlike cpr-reboot mode, cpr-transfer mode cannot save volatile ram blocks
in the migration stream file and recreate them later, because the physical
memory for the blocks is pinned and registered for vfio. Add a blocker
for volatile ram blocks.
Also add a blocker for RAM_GUEST_MEMFD. Preserving guest_memfd may be
sufficient for CPR, but it has not been tested yet.
Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Message-ID: <1740667681-257312-1-git-send-email-steven.sistare@oracle.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Diffstat (limited to 'migration/savevm.c')
-rw-r--r-- | migration/savevm.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/migration/savevm.c b/migration/savevm.c index 5c4fdfd..ce158c3 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -3514,12 +3514,14 @@ void vmstate_register_ram(MemoryRegion *mr, DeviceState *dev) qemu_ram_set_idstr(mr->ram_block, memory_region_name(mr), dev); qemu_ram_set_migratable(mr->ram_block); + ram_block_add_cpr_blocker(mr->ram_block, &error_fatal); } void vmstate_unregister_ram(MemoryRegion *mr, DeviceState *dev) { qemu_ram_unset_idstr(mr->ram_block); qemu_ram_unset_migratable(mr->ram_block); + ram_block_del_cpr_blocker(mr->ram_block); } void vmstate_register_ram_global(MemoryRegion *mr) |