Here's the 3rd version of file-based migration support [0]. For background check the cover letter of the initial. The main changes are :
- Updated commit message as per Daniel Berrange's suggestino for Patches 1-2 - Fixed tab in various pages - Added comments better explaining how json_writer_start_object in qemu_savevm_state_header is matched and also squashed the analyze-migration.py parts into patch 3 - Reworked the way pwritv/preadv are introduced. Now there are generic callbacks in QIOChannel that are implemented for the QIOChannelFile. - Separated the introduction of QEMUFile-related helpers from the patch introducing the io interfaces. - Added qtests for the file-based migration as well as for the fixed-ram feature. [0] https://lore.kernel.org/qemu-devel/20221004123733.2745519-1-nbori...@suse.com/ Nikolay Borisov (14): migration: support file: uri for source migration migration: Add support for 'file:' uri for incoming migration migration: Initial support of fixed-ram feature for analyze-migration.py io: Add generic pwritev/preadv interface io: implement io_pwritev for QIOChannelFile io: add and implement QIO_CHANNEL_FEATURE_SEEKABLE for channel file migration/qemu-file: add utility methods for working with seekable channels io: Add preadv support to QIOChannelFile migration: add qemu_get_buffer_at migration/ram: Introduce 'fixed-ram' migration stream capability migration: Refactor precopy ram loading code migration: Add support for 'fixed-ram' migration restore tests: Add migrate_incoming_qmp helper tests/qtest: migration-test: Add tests for file-based migration include/exec/ramblock.h | 7 + include/io/channel.h | 50 +++++ include/migration/qemu-file-types.h | 2 + io/channel-file.c | 61 ++++++ io/channel.c | 26 +++ migration/file.c | 38 ++++ migration/file.h | 10 + migration/meson.build | 1 + migration/migration.c | 61 +++++- migration/migration.h | 6 + migration/qemu-file.c | 82 +++++++ migration/qemu-file.h | 4 + migration/ram.c | 328 +++++++++++++++++++++------- migration/savevm.c | 48 ++-- qapi/migration.json | 2 +- scripts/analyze-migration.py | 49 ++++- tests/qtest/migration-helpers.c | 19 ++ tests/qtest/migration-helpers.h | 4 + tests/qtest/migration-test.c | 46 ++++ 19 files changed, 743 insertions(+), 101 deletions(-) create mode 100644 migration/file.c create mode 100644 migration/file.h -- 2.34.1