On 25/10/2024 0:30, Peter Xu wrote:
External email: Use caution opening links or attachments


We have two outside users of this API, so it's exported.

Is it really necessary?  Does it matter whether it must be
ACTIVE/POSTCOPY_ACTIVE/DEVICE?  I guess no.

Actually for VFIO it does matter, because we don't want VFIO to do DPT log_sync in SETUP stage when DPT might not have been started yet. See commit ff180c6bd7a8 ("vfio/migration: Skip log_sync during migration SETUP state").

Thanks.


The external user is trying to detect whether migration is running or not,
as simple as that.

To make the migration_is*() APIs even shorter, let's use
migration_is_running() for outside worlds.

Internally there're actually three places that literally needs
migration_is_active() rather than running().  Keep that an internal helper.

After this patch, we finally only export one helper that allows external
world to try detect migration status, which is migration_is_running().

Signed-off-by: Peter Xu <pet...@redhat.com>
---
  include/migration/misc.h | 1 -
  migration/migration.h    | 1 +
  hw/vfio/common.c         | 4 ++--
  system/dirtylimit.c      | 3 +--
  4 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/include/migration/misc.h b/include/migration/misc.h
index ad1e25826a..c0e23fdac9 100644
--- a/include/migration/misc.h
+++ b/include/migration/misc.h
@@ -53,7 +53,6 @@ void dump_vmstate_json_to_file(FILE *out_fp);
  void migration_object_init(void);
  void migration_shutdown(void);

-bool migration_is_active(void);
  bool migration_is_running(void);
  bool migration_thread_is_self(void);

diff --git a/migration/migration.h b/migration/migration.h
index 0956e9274b..9fa26ab06a 100644
--- a/migration/migration.h
+++ b/migration/migration.h
@@ -492,6 +492,7 @@ int migration_call_notifiers(MigrationState *s, 
MigrationEventType type,

  int migrate_init(MigrationState *s, Error **errp);
  bool migration_is_blocked(Error **errp);
+bool migration_is_active(void);
  /* True if outgoing migration has entered postcopy phase */
  bool migration_in_postcopy(void);
  bool migration_postcopy_is_alive(MigrationStatus state);
diff --git a/hw/vfio/common.c b/hw/vfio/common.c
index cc72282c71..7eb99ebd4d 100644
--- a/hw/vfio/common.c
+++ b/hw/vfio/common.c
@@ -174,7 +174,7 @@ static bool 
vfio_devices_all_dirty_tracking(VFIOContainerBase *bcontainer)
  {
      VFIODevice *vbasedev;

-    if (!migration_is_active()) {
+    if (!migration_is_running()) {
          return false;
      }

@@ -219,7 +219,7 @@ vfio_devices_all_running_and_mig_active(const 
VFIOContainerBase *bcontainer)
  {
      VFIODevice *vbasedev;

-    if (!migration_is_active()) {
+    if (!migration_is_running()) {
          return false;
      }

diff --git a/system/dirtylimit.c b/system/dirtylimit.c
index ab20da34bb..d7a855c603 100644
--- a/system/dirtylimit.c
+++ b/system/dirtylimit.c
@@ -80,8 +80,7 @@ static void vcpu_dirty_rate_stat_collect(void)
      int i = 0;
      int64_t period = DIRTYLIMIT_CALC_TIME_MS;

-    if (migrate_dirty_limit() &&
-        migration_is_active()) {
+    if (migrate_dirty_limit() && migration_is_running()) {
          period = migrate_vcpu_dirty_limit_period();
      }

--
2.45.0


Reply via email to