We want to implement exteranl bg-snapshot tool for saving RAM. For this it is important to be able manage migration stream because tool has no idea about non-RAM part and its size.
Possible solution is to send RAM separately. This can be done with implemented RAM capabilities. These capabilities allow to send only RAM part or non-RAM part so tool can save non-RAM part without special handlers. RAM will be saved with special handlers for postcopy load. Nikita Lapshin (6): migration: is_ram changed to is_iterable migration: should_skip() implemented migration: Add no-ram capability migration: Add ram-only capability migration: analyze-migration script changed migration: Test for ram capabilities migration/migration.c | 29 +++++- migration/migration.h | 2 + migration/ram.c | 6 ++ migration/savevm.c | 63 ++++++------ qapi/migration.json | 11 ++- scripts/analyze-migration.py | 19 ++-- .../tests/migrate-ram-capabilities-test | 96 +++++++++++++++++++ .../tests/migrate-ram-capabilities-test.out | 5 + 8 files changed, 192 insertions(+), 39 deletions(-) create mode 100755 tests/qemu-iotests/tests/migrate-ram-capabilities-test create mode 100644 tests/qemu-iotests/tests/migrate-ram-capabilities-test.out -- 2.27.0