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.
This series is based on the following series: https://lore.kernel.org/qemu-devel/af76761aa6978071c5b8e9b872b697db465a5520.1680457631.git.lukasstra...@web.de/T/#t Lukas Straub (14): 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.c: Remove unused include after moving out code ram-compress.c: Make target independent migration: Initialize and cleanup decompression in migration.c migration/meson.build | 5 +- migration/migration.c | 9 + migration/qemu-file.c | 11 + migration/qemu-file.h | 1 + migration/ram-compress.c | 483 ++++++++++++++++++++++++++++++++++++++ migration/ram-compress.h | 70 ++++++ migration/ram.c | 490 +++------------------------------------ 7 files changed, 615 insertions(+), 454 deletions(-) create mode 100644 migration/ram-compress.c create mode 100644 migration/ram-compress.h -- 2.30.2
pgpb6iASV2Rl1.pgp
Description: OpenPGP digital signature