All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/16] Migration: More migration atomic counters
@ 2023-05-15 19:56 Juan Quintela
  2023-05-15 19:56 ` [PATCH v2 01/16] migration: Don't use INT64_MAX for unlimited rate Juan Quintela
                   ` (15 more replies)
  0 siblings, 16 replies; 58+ messages in thread
From: Juan Quintela @ 2023-05-15 19:56 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Xu, Greg Kurz, qemu-s390x, Fam Zheng, Ilya Leoshkevich,
	Halil Pasic, John Snow, qemu-ppc, Daniel Henrique Barboza,
	Harsh Prateek Bora, Christian Borntraeger, Richard Henderson,
	David Gibson, David Hildenbrand, Stefan Hajnoczi, Eric Farman,
	qemu-block, Cédric Le Goater, Eric Blake, Leonardo Bras,
	Thomas Huth, Juan Quintela, Vladimir Sementsov-Ogievskiy

Hi

In this v2 series:
- More documentation here and there.
- Fix migration_rate_set() to really / XFER_LIMIT_RATIO
- All reviewed patches are in Migration PULL request 20230515
- There are later reviewed patches, but that depend on the first ones
  that are still not reviewed.

Please review.

Thanks, Juan.

Subject: [PULL 00/11] Migration 20230515 patches
Based-on: Message-Id: <20230515123334.58995-1-quintela@redhat.com>

[v1]
In this series:
- play with rate limit
  * document that a value of 0 means no rate-limit
  * change all users of INT64_MAX to use 0
  * Make sure that transferred value is right
    This gets transferred == multifd_bytes + qemu_file_transferred()
    until the completation stage.  Changing all devices is overkill and not useful.
  * Move all rate_limit calculations to use atomics instead of qemu_file_transferred().
    Use atomics for rate_limit.
  * RDMA
    Adjust counters here and there
    Change the "imaginary" 1 byte transfer to say if it has sent a page or not.
    More cleanups due to this changes
  * multifd: Adjust the number of transferred bytes in the right place and right amount
    right place: just after write, now with atomic counters we can
    right ammount: Now that we are in the right place, we can do it right also for compressing

Please review.

ToDo: Best described as ToSend:
- qemu_file_transfered() is based on atomics on my branch
- transferred atomic is not needed anymore

ToDo before my next send:

- downtime_bytes, precopy_bytes and postcopy_bytes should be based on
  migration_transfered_bytes and not need a counter of their own.

With that my cleanup would have finishing, moving from:
- total_transferred in QEMUFile (not atomic)
- rate_limit_used in QEMUFile (not atomic)
- multifd_bytes in mig_stats
- transferred in mig_stats (not updated everywhere needed, the
  following ones are based on this one)
- downtime_bytes in mig_stats
- precopy_bytes in mig_stats
- postcopy_bytes in mig_stats

To just:
- qemu_file_transferred in mig_stats
- multifd_bytes in mig_stats
- rdma_bytes in mig_stats

And for each transfer, we only update one of the three, everything
else is derived from this three values.

Later, Juan.

Juan Quintela (16):
  migration: Don't use INT64_MAX for unlimited rate
  migration: Correct transferred bytes value
  migration: Move setup_time to mig_stats
  qemu-file: Account for rate_limit usage on qemu_fflush()
  migration: Move rate_limit_max and rate_limit_used to migration_stats
  migration: Move migration_total_bytes() to migration-stats.c
  migration: Add a trace for migration_transferred_bytes
  migration: Use migration_transferred_bytes() to calculate rate_limit
  migration: We don't need the field rate_limit_used anymore
  migration: Don't abuse qemu_file transferred for RDMA
  migration/RDMA: It is accounting for zero/normal pages in two places
  migration/rdma: Remove QEMUFile parameter when not used
  migration/rdma: Don't use imaginary transfers
  migration: Remove unused qemu_file_credit_transfer()
  migration/rdma: Simplify the function that saves a page
  migration/multifd: Compute transferred bytes correctly

 include/migration/qemu-file-types.h | 12 ++++-
 migration/migration-stats.h         | 73 +++++++++++++++++++++++++++
 migration/migration.h               |  1 -
 migration/options.h                 |  7 ---
 migration/qemu-file.h               | 33 +++----------
 hw/ppc/spapr.c                      |  4 +-
 hw/s390x/s390-stattrib.c            |  2 +-
 migration/block-dirty-bitmap.c      |  2 +-
 migration/block.c                   |  5 +-
 migration/migration-stats.c         | 59 ++++++++++++++++++++++
 migration/migration.c               | 36 ++++++--------
 migration/multifd.c                 | 14 +++---
 migration/options.c                 |  7 ++-
 migration/qemu-file.c               | 77 ++++-------------------------
 migration/ram.c                     | 34 +++++++------
 migration/rdma.c                    | 64 +++++++++++++-----------
 migration/savevm.c                  | 21 ++++++--
 migration/vmstate.c                 |  3 ++
 migration/meson.build               |  2 +-
 migration/trace-events              |  3 ++
 20 files changed, 268 insertions(+), 191 deletions(-)

-- 
2.40.1



^ permalink raw reply	[flat|nested] 58+ messages in thread

end of thread, other threads:[~2023-05-30 10:32 UTC | newest]

Thread overview: 58+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-15 19:56 [PATCH v2 00/16] Migration: More migration atomic counters Juan Quintela
2023-05-15 19:56 ` [PATCH v2 01/16] migration: Don't use INT64_MAX for unlimited rate Juan Quintela
2023-05-16  4:49   ` Harsh Prateek Bora
2023-05-16  9:13   ` David Edmondson
2023-05-16  9:24     ` Juan Quintela
2023-05-16  9:55       ` David Edmondson
2023-05-16 12:47       ` Cédric Le Goater
2023-05-23  1:57         ` Leonardo Brás
2023-05-15 19:56 ` [PATCH v2 02/16] migration: Correct transferred bytes value Juan Quintela
2023-05-16  9:35   ` David Edmondson
2023-05-23  2:15   ` Leonardo Brás
2023-05-26  8:04     ` Juan Quintela
2023-05-26 18:50       ` Leonardo Bras Soares Passos
2023-05-30 10:30         ` Juan Quintela
2023-05-15 19:56 ` [PATCH v2 03/16] migration: Move setup_time to mig_stats Juan Quintela
2023-05-16  9:42   ` David Edmondson
2023-05-16 10:06     ` Juan Quintela
2023-05-16 11:07       ` David Edmondson
2023-05-25  1:18   ` Leonardo Brás
2023-05-26  8:07     ` Juan Quintela
2023-05-26 18:53       ` Leonardo Bras Soares Passos
2023-05-15 19:56 ` [PATCH v2 04/16] qemu-file: Account for rate_limit usage on qemu_fflush() Juan Quintela
2023-05-25  1:33   ` Leonardo Brás
2023-05-26  8:09     ` Juan Quintela
2023-05-26 18:54       ` Leonardo Bras Soares Passos
2023-05-15 19:56 ` [PATCH v2 05/16] migration: Move rate_limit_max and rate_limit_used to migration_stats Juan Quintela
2023-05-16 12:43   ` Cédric Le Goater
2023-05-25  3:06   ` Leonardo Brás
2023-05-15 19:56 ` [PATCH v2 06/16] migration: Move migration_total_bytes() to migration-stats.c Juan Quintela
2023-05-25  3:09   ` Leonardo Brás
2023-05-15 19:57 ` [PATCH v2 07/16] migration: Add a trace for migration_transferred_bytes Juan Quintela
2023-05-25  3:18   ` Leonardo Brás
2023-05-15 19:57 ` [PATCH v2 08/16] migration: Use migration_transferred_bytes() to calculate rate_limit Juan Quintela
2023-05-25  6:50   ` Leonardo Brás
2023-05-26  8:17     ` Juan Quintela
2023-05-26 18:59       ` Leonardo Bras Soares Passos
2023-05-15 19:57 ` [PATCH v2 09/16] migration: We don't need the field rate_limit_used anymore Juan Quintela
2023-05-25  6:50   ` Leonardo Brás
2023-05-26  8:18     ` Juan Quintela
2023-05-26 18:59       ` Leonardo Bras Soares Passos
2023-05-15 19:57 ` [PATCH v2 10/16] migration: Don't abuse qemu_file transferred for RDMA Juan Quintela
2023-05-25  6:53   ` Leonardo Brás
2023-05-15 19:57 ` [PATCH v2 11/16] migration/RDMA: It is accounting for zero/normal pages in two places Juan Quintela
2023-05-25  7:06   ` Leonardo Brás
2023-05-15 19:57 ` [PATCH v2 12/16] migration/rdma: Remove QEMUFile parameter when not used Juan Quintela
2023-05-25  7:21   ` Leonardo Brás
2023-05-15 19:57 ` [PATCH v2 13/16] migration/rdma: Don't use imaginary transfers Juan Quintela
2023-05-25  7:27   ` Leonardo Brás
2023-05-15 19:57 ` [PATCH v2 14/16] migration: Remove unused qemu_file_credit_transfer() Juan Quintela
2023-05-25  7:29   ` Leonardo Brás
2023-05-15 19:57 ` [PATCH v2 15/16] migration/rdma: Simplify the function that saves a page Juan Quintela
2023-05-25  8:10   ` Leonardo Brás
2023-05-26  8:21     ` Juan Quintela
2023-05-26 19:03       ` Leonardo Bras Soares Passos
2023-05-15 19:57 ` [PATCH v2 16/16] migration/multifd: Compute transferred bytes correctly Juan Quintela
2023-05-25  8:38   ` Leonardo Brás
2023-05-26  8:23     ` Juan Quintela
2023-05-26 19:04       ` Leonardo Bras Soares Passos

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.