This is 8th version of [PATCH v1 0/2] Add bitmap for copied pages in postcopy migration cover message from there
This is a separate patch set, it derived from https://www.mail-archive.com/qemu-devel@nongnu.org/msg456004.html There are several possible use cases: 1. solve issue with postcopy live migration and shared memory. OVS-VSWITCH requires information about copied pages, to fallocate newly allocated pages. 2. calculation vCPU blocktime for more details see https://www.mail-archive.com/qemu-devel@nongnu.org/msg456004.html 3. Recovery after fail in the middle of postcopy migration ---------------------------------------------------------------- V7 -> V8 - removed unnecessary renaming and moving of block variable to ram_load's function scope - ramblock_recv_map_init became static function V6 -> V7 - rebased on [PATCH v7 0/5] Create setup/cleanup methods for migration incoming side - live time of the received map was changed (ram_load_setup/ram_load_cleanup) V5 -> V6 - call ramblock_recv_map_init from migration_fd_process_incoming (Peter suggested)But finalization is still in ram_load_cleanup as Juan suggested. V4 -> V5 - remove ramblock_recv_bitmap_clear_range in favor to bitmap_clear (comment from David) - single invocation place for ramblock_recv_bitmap_set (comment from Peter) - minor changes like removing comment from qemu_ufd_copy_ioctl and local variable from ramblock_recv_map_init (comment from Peter) V3 -> V4 - clear_bit instead of ramblock_recv_bitmap_clear in ramblock_recv_bitmap_clear_range, it reduced number of operation (comment from Juan) - for postcopy ramblock_recv_bitmap_set is calling after page was copied, only in case of success (comment from David) - indentation fixes (comment from Juan) V2 -> V3 - ramblock_recv_map_init call is placed into migration_incoming_get_current, looks like it's general place for both precopy and postcopy case. - received bitmap memory releasing is placed into ram_load_cleanup, unfortunatelly, it calls only in case of precopy. - precopy case and discard ram block case - function renaming, and another minor cleanups V1 -> V2 - change in terminology s/copied/received/g - granularity became TARGET_PAGE_SIZE, but not actual page size of the ramblock - movecopiedmap & get_copiedmap_size were removed, until patch set where it will be necessary - releasing memory of receivedmap was added into ram_load_cleanup - new patch "migration: introduce qemu_ufd_copy_ioctl helper" Patchset is based on: commit 6d60e295ef020759a03b90724d0342012c189ba2 "Merge remote-tracking branch 'remotes/jnsnow/tags/ide-pull-request' into staging" Alexey Perevalov (3): migration: postcopy_place_page factoring out migration: introduce qemu_ufd_copy_ioctl helper migration: add bitmap for received page include/exec/ram_addr.h | 10 +++++++++ migration/postcopy-ram.c | 53 +++++++++++++++++++++++++++++++----------------- migration/postcopy-ram.h | 4 ++-- migration/ram.c | 40 ++++++++++++++++++++++++++++++++++-- migration/ram.h | 5 +++++ 5 files changed, 89 insertions(+), 23 deletions(-) -- 1.9.1