[Qemu-devel] [PATCH v4 0/6] Multifd compression support

Juan Quintela posted 6 patches 13 weeks ago
Failed in applying to current master (apply log)
hmp.c                        |  13 +
hw/core/qdev-properties.c    |  13 +
include/hw/qdev-properties.h |   3 +
migration/migration.c        |  34 ++-
migration/migration.h        |   3 +-
migration/ram.c              | 454 ++++++++++++++++++++++++++++++++++-
migration/ram.h              |   4 +-
migration/rdma.c             |   2 +-
qapi/migration.json          |  30 ++-
tests/migration-test.c       |  54 ++++-
10 files changed, 585 insertions(+), 25 deletions(-)

[Qemu-devel] [PATCH v4 0/6] Multifd compression support

Posted by Juan Quintela 13 weeks ago
v4:
- improve the code left and right
- use the MIGRATION_FLAG_SYNC
- use qerrors properly
- pass errors everywhere (no more printfs)
- create cleanup/save operations
- merged zlib patches into one
- general patches alreody on the migration pull request.
- commented all the methods.

ToDo: Didn't add the sztd compression because I changed the zlib
      code/methods quite a bit.
      My understanding is that all the issues are gone.

v3:
- improve the code
- address David and Markus comments
- make compression code into methods
  so we can add any other method ading just three functions

Please review, as far as I know everything is ok now.

Todo: Add zstd support

v2:
- improve the code left and right
- Split better the zlib code
- rename everything to v4.1
- Add tests for multifd-compress zlib
- Parameter is now an enum (soon will see sztd)

ToDo:
- Make operations for diferent methods:
  * multifd_prepare_send_none/zlib
  * multifd_send_none/zlib
  * multifd_recv_none/zlib
- Use the MULTIFD_FLAG_ZLIB (it is unused so far).

Please review and comment.

v1:

This series create compression code on top of multifd.  It is still
WIP, but it is already:
- faster that current compression code
- it does the minimum amount of copies possible
- we allow support for other compression codes
- it pass the multifd test sent in my previous series

Test for existing code didn't work because code is too slow, I need to
make downtime 10 times bigger to make it to converge on my test
machine.  This code works with same limits that multifd no-

ToDo:
- move printf's  to traces
- move code to a struct instead of if (zlib) inside the main threads.
- improve error handling.

Please, review and coment.

Juan Quintela (6):
  migration-test: introduce functions to handle string parameters
  migration: Make multifd_save_setup() get an Error parameter
  migration: Make multifd_load_setup() get an Error parameter
  migration: Add multifd-compress parameter
  migration: Make no compression operations into its own structure
  migration: Add zlib compression multifd support

 hmp.c                        |  13 +
 hw/core/qdev-properties.c    |  13 +
 include/hw/qdev-properties.h |   3 +
 migration/migration.c        |  34 ++-
 migration/migration.h        |   3 +-
 migration/ram.c              | 454 ++++++++++++++++++++++++++++++++++-
 migration/ram.h              |   4 +-
 migration/rdma.c             |   2 +-
 qapi/migration.json          |  30 ++-
 tests/migration-test.c       |  54 ++++-
 10 files changed, 585 insertions(+), 25 deletions(-)

-- 
2.21.0