[PATCH v9 0/3] Eliminate multifd flush

Juan Quintela posted 3 patches 1 year ago
Failed in applying to current master (apply log)
hw/core/machine.c     |  4 +++-
migration/migration.c |  2 ++
migration/migration.h | 11 +++++++++++
migration/options.c   |  7 +++++++
migration/options.h   |  1 +
migration/ram.c       | 44 +++++++++++++++++++++++++++++++++++++------
6 files changed, 62 insertions(+), 7 deletions(-)
[PATCH v9 0/3] Eliminate multifd flush
Posted by Juan Quintela 1 year ago
Hi

Changes in v9:
- rebase over migration-pull-20230424
  this means that we need to change things for options.c creation.
- make the property be set for 8.0 not 7.0 (thanks peter)
- the check that disabled the property was lost on some rebase, put it back.

Please, review.

[v8]
- rebase over latests

[v7]
- Rebased to last upstream
- Rename the capability to a property.  So we move all the problems
  that we have on last review dissaper because it is not a capability.

So now, it is works as expected.  Enabled for old machine types,
disabled for new machine types.  Users will only found it if they go through the migration properties.

[v6]
- Rename multifd-sync-after-each-section to
         multifd-flush-after-each-section
- Redo comments (thanks Markus)
- Redo how to comment capabilities that are enabled/disabled during
  development. (thanks Markus)

[v5]
- Remove RAM Flags documentation (already on PULL request)
- rebase on top of PULL request.

[v4]
- Rebased on top of migration-20230209 PULL request
- Integrate two patches in that pull request
- Rebase
- Address Eric reviews.

[v3]
- update to latest upstream.
- fix checkpatch errors.

[v2]
- update to latest upstream
- change 0, 1, 2 values to defines
- Add documentation for SAVE_VM_FLAGS
- Add missing qemu_fflush(), it made random hangs for migration test
  (only for tls, no clue why).

[v1]
Upstream multifd code synchronize all threads after each RAM section.  This is suboptimal.
Change it to only flush after we go trough all ram.

Preserve all semantics for old machine types.

Juan Quintela (3):
  multifd: Create property multifd-flush-after-each-section
  multifd: Protect multifd_send_sync_main() calls
  multifd: Only flush once each full round of memory

 hw/core/machine.c     |  4 +++-
 migration/migration.c |  2 ++
 migration/migration.h | 11 +++++++++++
 migration/options.c   |  7 +++++++
 migration/options.h   |  1 +
 migration/ram.c       | 44 +++++++++++++++++++++++++++++++++++++------
 6 files changed, 62 insertions(+), 7 deletions(-)

-- 
2.40.0
Re: [PATCH v9 0/3] Eliminate multifd flush
Posted by Peter Xu 1 year ago
On Wed, Apr 26, 2023 at 08:18:58PM +0200, Juan Quintela wrote:
> Juan Quintela (3):
>   multifd: Create property multifd-flush-after-each-section
>   multifd: Protect multifd_send_sync_main() calls
>   multifd: Only flush once each full round of memory

Acked-by: Peter Xu <peterx@redhat.com>

-- 
Peter Xu