This is the follow up of "[PATCH RFC] memory: Don't allow to resize RAM while migrating" [1]
This series contains some (slightly modified) patches also contained in: "[PATCH v2 fixed 00/16] Ram blocks with resizable anonymous allocations under POSIX" [2] That series will be based on this series. The last patch (#13) in this series could be moved to the other series, but I decided to include it in here for now (similar context). I realized that resizing RAM blocks while the guest is being migrated (precopy: resize while still running on the source, postcopy: resize while already running on the target) is buggy. In case of precopy, we can simply cancel migration. Postcopy handling is more involved. Resizing can currently happen during a guest reboot, triggered by ACPI rebuilds. Along with the fixes, some cleanups. [1] https://lkml.kernel.org/r/20200213172016.196609-1-da...@redhat.com [2] https://lkml.kernel.org/r/20200212134254.11073-1-da...@redhat.com David Hildenbrand (13): util: vfio-helpers: Factor out and fix processing of existing ram blocks stubs/ram-block: Remove stubs that are no longer needed numa: Teach ram block notifiers about resizeable ram blocks numa: Make all callbacks of ram block notifiers optional migrate/ram: Handle RAM block resizes during precopy migrate/ram: Discard new RAM when growing RAM blocks and the VM is stopped migrate/ram: Get rid of "place_source" in ram_load_postcopy() migrate/ram: Simplify host page handling in ram_load_postcopy() migrate/ram: Consolidate variable reset after placement in ram_load_postcopy() migrate/ram: Handle RAM block resizes during postcopy migrate/multifd: Print used_length of memory block migrate/ram: Use offset_in_ramblock() in range checks migrate/ram: Tolerate partially changed mappings in postcopy code exec.c | 23 +++++- hw/core/numa.c | 41 ++++++++++- hw/i386/xen/xen-mapcache.c | 7 +- include/exec/cpu-common.h | 1 + include/exec/memory.h | 10 ++- include/exec/ramblock.h | 9 +++ include/exec/ramlist.h | 13 +++- migration/migration.c | 9 ++- migration/migration.h | 1 + migration/multifd.c | 2 +- migration/postcopy-ram.c | 58 ++++++++++++--- migration/ram.c | 147 +++++++++++++++++++++++++++---------- stubs/ram-block.c | 20 ----- target/i386/hax-mem.c | 5 +- target/i386/sev.c | 18 +++-- util/vfio-helpers.c | 41 ++++------- 16 files changed, 280 insertions(+), 125 deletions(-) -- 2.24.1