This series refactors the ram compress code.
It first removes ram.c dependencies from the core compress code, then
moves it out to its own file. Finally, on the migration destination side
the initialisation and cleanup of compress threads is moved out of ram.c
to migration.c. This allows using COLO with compress enabled.
Changes since v1:
- Add postcopy tests with compress enabled
- Use page_size variable in "ram-compress.c: Make target independent"
- Squash "ram.c: Remove unused include after moving out code"
with "ram.c: Move core compression code into its own file"
- Add Reviewed-by: Tags
Lukas Straub (13):
qtest/migration-test.c: Add postcopy tests with compress enabled
ram.c: Let the compress threads return a CompressResult enum
ram.c: Dont change param->block in the compress thread
ram.c: Reset result after sending queued data
ram.c: Do not call save_page_header() from compress threads
ram.c: Call update_compress_thread_counts from
compress_send_queued_data
ram.c: Remove last ram.c dependency from the core compress code
ram.c: Introduce whitespace (squash with next patch)
ram.c: Move core compression code into its own file
ram.c: Remove whitespace (squash with previous patch)
ram.c: Move core decompression code into its own file
ram compress: Assert that the file buffer matches the result
ram-compress.c: Make target independent
migration/meson.build | 5 +-
migration/qemu-file.c | 11 +
migration/qemu-file.h | 1 +
migration/ram-compress.c | 484 ++++++++++++++++++++++++++++++++++
migration/ram-compress.h | 70 +++++
migration/ram.c | 485 +++--------------------------------
tests/qtest/migration-test.c | 83 +++---
7 files changed, 660 insertions(+), 479 deletions(-)
create mode 100644 migration/ram-compress.c
create mode 100644 migration/ram-compress.h
--
2.40.0