All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V1 00/10] privatize migration.h
@ 2024-02-27 17:43 Steve Sistare
  2024-02-27 17:43 ` [PATCH V1 01/10] migration: remove migration.h references Steve Sistare
                   ` (9 more replies)
  0 siblings, 10 replies; 12+ messages in thread
From: Steve Sistare @ 2024-02-27 17:43 UTC (permalink / raw
  To: qemu-devel
  Cc: Alex Williamson, Cedric Le Goater, Michael S. Tsirkin,
	David Hildenbrand, Peter Xu, Fabiano Rosas, Hailiang Zhang,
	Zhang Chen, Li Zhijian, Jason Wang, Hyman Huang, Song Gao,
	Alistair Francis, Steve Sistare

migration/migration.h is the private interface for code in the migration
sub-directory, but many other clients include it because they need accessors
that are not exported by the publc interface in include/migration/misc.h.
Fix that by refactoring accessors and defining new ones as needed.

After these fixes, no code outside of migration includes migration.h,
and no code outside of migration uses MigrationState.

This series depends on the following:
  * migration patches in the series "allow cpr-reboot for vfio"
  * singleton patch "migration: export fewer options"

Steve Sistare (10):
  migration: remove migration.h references
  migration: export migration_is_setup_or_active
  migration: export migration_is_active
  migration: export migration_is_running
  migration: export vcpu_dirty_limit_period
  migration: migration_thread_is_self
  migration: migration_is_device
  migration: migration_file_set_error
  migration: privatize colo interfaces
  migration: purge MigrationState from public interface

 hw/vfio/common.c                   | 17 +++-------
 hw/vfio/container.c                |  1 -
 hw/vfio/migration.c                | 11 ++-----
 hw/virtio/vhost-user.c             |  1 -
 hw/virtio/virtio-balloon.c         |  1 -
 include/migration/client-options.h |  1 +
 include/migration/misc.h           | 17 +++++-----
 migration/colo.c                   | 17 ++++++----
 migration/migration.c              | 67 ++++++++++++++++++++++++--------------
 migration/migration.h              |  7 ++--
 migration/options.c                | 11 +++++--
 migration/ram.c                    |  5 ++-
 migration/savevm.c                 |  2 +-
 net/colo-compare.c                 |  3 +-
 net/vhost-vdpa.c                   |  3 +-
 stubs/colo.c                       |  1 -
 system/dirtylimit.c                | 12 +++----
 system/qdev-monitor.c              |  1 -
 target/loongarch/kvm/kvm.c         |  1 -
 target/riscv/kvm/kvm-cpu.c         |  4 +--
 tests/unit/test-vmstate.c          |  1 -
 21 files changed, 96 insertions(+), 88 deletions(-)

-- 
1.8.3.1



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

* [PATCH V1 01/10] migration: remove migration.h references
  2024-02-27 17:43 [PATCH V1 00/10] privatize migration.h Steve Sistare
@ 2024-02-27 17:43 ` Steve Sistare
  2024-02-27 17:43 ` [PATCH V1 02/10] migration: export migration_is_setup_or_active Steve Sistare
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Steve Sistare @ 2024-02-27 17:43 UTC (permalink / raw
  To: qemu-devel
  Cc: Alex Williamson, Cedric Le Goater, Michael S. Tsirkin,
	David Hildenbrand, Peter Xu, Fabiano Rosas, Hailiang Zhang,
	Zhang Chen, Li Zhijian, Jason Wang, Hyman Huang, Song Gao,
	Alistair Francis, Steve Sistare

Remove migration.h from files that no longer need it due to
previous commits.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
---
 hw/vfio/container.c        | 1 -
 hw/virtio/vhost-user.c     | 1 -
 hw/virtio/virtio-balloon.c | 1 -
 system/qdev-monitor.c      | 1 -
 target/loongarch/kvm/kvm.c | 1 -
 tests/unit/test-vmstate.c  | 1 -
 6 files changed, 6 deletions(-)

diff --git a/hw/vfio/container.c b/hw/vfio/container.c
index bd25b9f..ff081a1 100644
--- a/hw/vfio/container.c
+++ b/hw/vfio/container.c
@@ -32,7 +32,6 @@
 #include "sysemu/reset.h"
 #include "trace.h"
 #include "qapi/error.h"
-#include "migration/migration.h"
 #include "pci.h"
 
 VFIOGroupList vfio_group_list =
diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c
index a1eea85..1af8621 100644
--- a/hw/virtio/vhost-user.c
+++ b/hw/virtio/vhost-user.c
@@ -26,7 +26,6 @@
 #include "qemu/sockets.h"
 #include "sysemu/runstate.h"
 #include "sysemu/cryptodev.h"
-#include "migration/migration.h"
 #include "migration/postcopy-ram.h"
 #include "trace.h"
 #include "exec/ramblock.h"
diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c
index a59ff17..609e39a 100644
--- a/hw/virtio/virtio-balloon.c
+++ b/hw/virtio/virtio-balloon.c
@@ -31,7 +31,6 @@
 #include "trace.h"
 #include "qemu/error-report.h"
 #include "migration/misc.h"
-#include "migration/migration.h"
 
 #include "hw/virtio/virtio-bus.h"
 #include "hw/virtio/virtio-access.h"
diff --git a/system/qdev-monitor.c b/system/qdev-monitor.c
index a13db76..948d393 100644
--- a/system/qdev-monitor.c
+++ b/system/qdev-monitor.c
@@ -38,7 +38,6 @@
 #include "qemu/option_int.h"
 #include "sysemu/block-backend.h"
 #include "migration/misc.h"
-#include "migration/migration.h"
 #include "qemu/cutils.h"
 #include "hw/qdev-properties.h"
 #include "hw/clock.h"
diff --git a/target/loongarch/kvm/kvm.c b/target/loongarch/kvm/kvm.c
index c19978a..11a69a3 100644
--- a/target/loongarch/kvm/kvm.c
+++ b/target/loongarch/kvm/kvm.c
@@ -22,7 +22,6 @@
 #include "hw/irq.h"
 #include "qemu/log.h"
 #include "hw/loader.h"
-#include "migration/migration.h"
 #include "sysemu/runstate.h"
 #include "cpu-csr.h"
 #include "kvm_loongarch.h"
diff --git a/tests/unit/test-vmstate.c b/tests/unit/test-vmstate.c
index c4f9faa..63f28f2 100644
--- a/tests/unit/test-vmstate.c
+++ b/tests/unit/test-vmstate.c
@@ -24,7 +24,6 @@
 
 #include "qemu/osdep.h"
 
-#include "../migration/migration.h"
 #include "migration/vmstate.h"
 #include "migration/qemu-file-types.h"
 #include "../migration/qemu-file.h"
-- 
1.8.3.1



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

* [PATCH V1 02/10] migration: export migration_is_setup_or_active
  2024-02-27 17:43 [PATCH V1 00/10] privatize migration.h Steve Sistare
  2024-02-27 17:43 ` [PATCH V1 01/10] migration: remove migration.h references Steve Sistare
@ 2024-02-27 17:43 ` Steve Sistare
  2024-02-27 18:38   ` Philippe Mathieu-Daudé
  2024-02-27 17:43 ` [PATCH V1 03/10] migration: export migration_is_active Steve Sistare
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 12+ messages in thread
From: Steve Sistare @ 2024-02-27 17:43 UTC (permalink / raw
  To: qemu-devel
  Cc: Alex Williamson, Cedric Le Goater, Michael S. Tsirkin,
	David Hildenbrand, Peter Xu, Fabiano Rosas, Hailiang Zhang,
	Zhang Chen, Li Zhijian, Jason Wang, Hyman Huang, Song Gao,
	Alistair Francis, Steve Sistare

Delete the MigrationState parameter from migration_is_setup_or_active
and move it to the public API in misc.h.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
---
 hw/vfio/common.c         |  2 +-
 include/migration/misc.h |  1 +
 migration/migration.c    | 12 ++++++------
 migration/migration.h    |  1 -
 migration/ram.c          |  5 ++---
 net/vhost-vdpa.c         |  3 +--
 6 files changed, 11 insertions(+), 13 deletions(-)

diff --git a/hw/vfio/common.c b/hw/vfio/common.c
index 059bfdc..896eab8 100644
--- a/hw/vfio/common.c
+++ b/hw/vfio/common.c
@@ -152,7 +152,7 @@ static void vfio_set_migration_error(int err)
 {
     MigrationState *ms = migrate_get_current();
 
-    if (migration_is_setup_or_active(ms->state)) {
+    if (migration_is_setup_or_active()) {
         WITH_QEMU_LOCK_GUARD(&ms->qemu_file_lock) {
             if (ms->to_dst_file) {
                 qemu_file_set_error(ms->to_dst_file, err);
diff --git a/include/migration/misc.h b/include/migration/misc.h
index 4c226a4..79cff62 100644
--- a/include/migration/misc.h
+++ b/include/migration/misc.h
@@ -61,6 +61,7 @@ void migration_object_init(void);
 void migration_shutdown(void);
 bool migration_is_idle(void);
 bool migration_is_active(MigrationState *);
+bool migration_is_setup_or_active(void);
 bool migrate_mode_is_cpr(MigrationState *);
 
 typedef enum MigrationEventType {
diff --git a/migration/migration.c b/migration/migration.c
index 7652fd4..894c65d 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1044,9 +1044,11 @@ void migrate_send_rp_resume_ack(MigrationIncomingState *mis, uint32_t value)
  * Return true if we're already in the middle of a migration
  * (i.e. any of the active or setup states)
  */
-bool migration_is_setup_or_active(int state)
+bool migration_is_setup_or_active(void)
 {
-    switch (state) {
+    MigrationState *s = current_migration;
+
+    switch (s->state) {
     case MIGRATION_STATUS_ACTIVE:
     case MIGRATION_STATUS_POSTCOPY_ACTIVE:
     case MIGRATION_STATUS_POSTCOPY_PAUSED:
@@ -1568,10 +1570,8 @@ bool migration_incoming_postcopy_advised(void)
 
 bool migration_in_bg_snapshot(void)
 {
-    MigrationState *s = migrate_get_current();
-
     return migrate_background_snapshot() &&
-            migration_is_setup_or_active(s->state);
+           migration_is_setup_or_active();
 }
 
 bool migration_is_idle(void)
@@ -2252,7 +2252,7 @@ static void *source_return_path_thread(void *opaque)
     trace_source_return_path_thread_entry();
     rcu_register_thread();
 
-    while (migration_is_setup_or_active(ms->state)) {
+    while (migration_is_setup_or_active()) {
         trace_source_return_path_thread_loop_top();
 
         header_type = qemu_get_be16(rp);
diff --git a/migration/migration.h b/migration/migration.h
index 65c0b61..736460a 100644
--- a/migration/migration.h
+++ b/migration/migration.h
@@ -479,7 +479,6 @@ bool migrate_has_error(MigrationState *s);
 
 void migrate_fd_connect(MigrationState *s, Error *error_in);
 
-bool migration_is_setup_or_active(int state);
 bool migration_is_running(int state);
 
 int migrate_init(MigrationState *s, Error **errp);
diff --git a/migration/ram.c b/migration/ram.c
index 45a00b4..3a52fe1 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -2872,10 +2872,9 @@ void qemu_guest_free_page_hint(void *addr, size_t len)
     RAMBlock *block;
     ram_addr_t offset;
     size_t used_len, start, npages;
-    MigrationState *s = migrate_get_current();
 
     /* This function is currently expected to be used during live migration */
-    if (!migration_is_setup_or_active(s->state)) {
+    if (!migration_is_setup_or_active()) {
         return;
     }
 
@@ -3105,7 +3104,7 @@ static int ram_save_iterate(QEMUFile *f, void *opaque)
 
 out:
     if (ret >= 0
-        && migration_is_setup_or_active(migrate_get_current()->state)) {
+        && migration_is_setup_or_active()) {
         if (migrate_multifd() && migrate_multifd_flush_after_each_section()) {
             ret = multifd_send_sync_main();
             if (ret < 0) {
diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c
index e6bdb45..8564817 100644
--- a/net/vhost-vdpa.c
+++ b/net/vhost-vdpa.c
@@ -26,7 +26,6 @@
 #include <err.h>
 #include "standard-headers/linux/virtio_net.h"
 #include "monitor/monitor.h"
-#include "migration/migration.h"
 #include "migration/misc.h"
 #include "hw/virtio/vhost.h"
 
@@ -355,7 +354,7 @@ static int vhost_vdpa_net_data_start(NetClientState *nc)
     assert(nc->info->type == NET_CLIENT_DRIVER_VHOST_VDPA);
 
     if (s->always_svq ||
-        migration_is_setup_or_active(migrate_get_current()->state)) {
+        migration_is_setup_or_active()) {
         v->shadow_vqs_enabled = true;
     } else {
         v->shadow_vqs_enabled = false;
-- 
1.8.3.1



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

* [PATCH V1 03/10] migration: export migration_is_active
  2024-02-27 17:43 [PATCH V1 00/10] privatize migration.h Steve Sistare
  2024-02-27 17:43 ` [PATCH V1 01/10] migration: remove migration.h references Steve Sistare
  2024-02-27 17:43 ` [PATCH V1 02/10] migration: export migration_is_setup_or_active Steve Sistare
@ 2024-02-27 17:43 ` Steve Sistare
  2024-02-27 17:43 ` [PATCH V1 04/10] migration: export migration_is_running Steve Sistare
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Steve Sistare @ 2024-02-27 17:43 UTC (permalink / raw
  To: qemu-devel
  Cc: Alex Williamson, Cedric Le Goater, Michael S. Tsirkin,
	David Hildenbrand, Peter Xu, Fabiano Rosas, Hailiang Zhang,
	Zhang Chen, Li Zhijian, Jason Wang, Hyman Huang, Song Gao,
	Alistair Francis, Steve Sistare

Delete the MigrationState parameter from migration_is_active so it
can be exported and used without including migration.h.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
---
 hw/vfio/common.c         |  4 ++--
 include/migration/misc.h |  2 +-
 migration/migration.c    | 10 ++++++----
 system/dirtylimit.c      |  2 +-
 4 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/hw/vfio/common.c b/hw/vfio/common.c
index 896eab8..2dbbf62 100644
--- a/hw/vfio/common.c
+++ b/hw/vfio/common.c
@@ -182,7 +182,7 @@ static bool vfio_devices_all_dirty_tracking(VFIOContainerBase *bcontainer)
     VFIODevice *vbasedev;
     MigrationState *ms = migrate_get_current();
 
-    if (ms->state != MIGRATION_STATUS_ACTIVE &&
+    if (!migration_is_active() &&
         ms->state != MIGRATION_STATUS_DEVICE) {
         return false;
     }
@@ -225,7 +225,7 @@ vfio_devices_all_running_and_mig_active(const VFIOContainerBase *bcontainer)
 {
     VFIODevice *vbasedev;
 
-    if (!migration_is_active(migrate_get_current())) {
+    if (!migration_is_active()) {
         return false;
     }
 
diff --git a/include/migration/misc.h b/include/migration/misc.h
index 79cff62..e1f1bf8 100644
--- a/include/migration/misc.h
+++ b/include/migration/misc.h
@@ -60,7 +60,7 @@ void dump_vmstate_json_to_file(FILE *out_fp);
 void migration_object_init(void);
 void migration_shutdown(void);
 bool migration_is_idle(void);
-bool migration_is_active(MigrationState *);
+bool migration_is_active(void);
 bool migration_is_setup_or_active(void);
 bool migrate_mode_is_cpr(MigrationState *);
 
diff --git a/migration/migration.c b/migration/migration.c
index 894c65d..4fb5b75 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1373,7 +1373,7 @@ static void migrate_fd_cleanup(MigrationState *s)
      */
     close_return_path_on_source(s);
 
-    assert(!migration_is_active(s));
+    assert(!migration_is_active());
 
     if (s->state == MIGRATION_STATUS_CANCELLING) {
         migrate_set_state(&s->state, MIGRATION_STATUS_CANCELLING,
@@ -1604,8 +1604,10 @@ bool migration_is_idle(void)
     return false;
 }
 
-bool migration_is_active(MigrationState *s)
+bool migration_is_active(void)
 {
+    MigrationState *s = current_migration;
+
     return (s->state == MIGRATION_STATUS_ACTIVE ||
             s->state == MIGRATION_STATUS_POSTCOPY_ACTIVE);
 }
@@ -3413,7 +3415,7 @@ static void *migration_thread(void *opaque)
 
     trace_migration_thread_setup_complete();
 
-    while (migration_is_active(s)) {
+    while (migration_is_active()) {
         if (urgent || !migration_rate_exceeded(s->to_dst_file)) {
             MigIterateState iter_state = migration_iteration_run(s);
             if (iter_state == MIG_ITERATE_SKIP) {
@@ -3559,7 +3561,7 @@ static void *bg_migration_thread(void *opaque)
     migration_bh_schedule(bg_migration_vm_start_bh, s);
     bql_unlock();
 
-    while (migration_is_active(s)) {
+    while (migration_is_active()) {
         MigIterateState iter_state = bg_migration_iteration_run(s);
         if (iter_state == MIG_ITERATE_SKIP) {
             continue;
diff --git a/system/dirtylimit.c b/system/dirtylimit.c
index 774ff44..051e031 100644
--- a/system/dirtylimit.c
+++ b/system/dirtylimit.c
@@ -83,7 +83,7 @@ static void vcpu_dirty_rate_stat_collect(void)
     int64_t period = DIRTYLIMIT_CALC_TIME_MS;
 
     if (migrate_dirty_limit() &&
-        migration_is_active(s)) {
+        migration_is_active()) {
         period = s->parameters.x_vcpu_dirty_limit_period;
     }
 
-- 
1.8.3.1



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

* [PATCH V1 04/10] migration: export migration_is_running
  2024-02-27 17:43 [PATCH V1 00/10] privatize migration.h Steve Sistare
                   ` (2 preceding siblings ...)
  2024-02-27 17:43 ` [PATCH V1 03/10] migration: export migration_is_active Steve Sistare
@ 2024-02-27 17:43 ` Steve Sistare
  2024-02-27 17:43 ` [PATCH V1 05/10] migration: export vcpu_dirty_limit_period Steve Sistare
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Steve Sistare @ 2024-02-27 17:43 UTC (permalink / raw
  To: qemu-devel
  Cc: Alex Williamson, Cedric Le Goater, Michael S. Tsirkin,
	David Hildenbrand, Peter Xu, Fabiano Rosas, Hailiang Zhang,
	Zhang Chen, Li Zhijian, Jason Wang, Hyman Huang, Song Gao,
	Alistair Francis, Steve Sistare

Delete the MigrationState parameter from migration_is_running and move
it to the public API in misc.h.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
---
 include/migration/misc.h   |  1 +
 migration/migration.c      | 10 ++++++----
 migration/migration.h      |  2 --
 migration/options.c        |  4 ++--
 migration/savevm.c         |  2 +-
 system/dirtylimit.c        |  2 +-
 target/riscv/kvm/kvm-cpu.c |  4 ++--
 7 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/include/migration/misc.h b/include/migration/misc.h
index e1f1bf8..7526977 100644
--- a/include/migration/misc.h
+++ b/include/migration/misc.h
@@ -106,6 +106,7 @@ int migration_call_notifiers(MigrationState *s, MigrationEventType type,
 bool migration_in_setup(MigrationState *);
 bool migration_has_finished(MigrationState *);
 bool migration_has_failed(MigrationState *);
+bool migration_is_running(void);
 /* ...and after the device transmission */
 /* True if incoming migration entered POSTCOPY_INCOMING_DISCARD */
 bool migration_in_incoming_postcopy(void);
diff --git a/migration/migration.c b/migration/migration.c
index 4fb5b75..98bfc90 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1066,9 +1066,11 @@ bool migration_is_setup_or_active(void)
     }
 }
 
-bool migration_is_running(int state)
+bool migration_is_running(void)
 {
-    switch (state) {
+    MigrationState *s = current_migration;
+
+    switch (s->state) {
     case MIGRATION_STATUS_ACTIVE:
     case MIGRATION_STATUS_POSTCOPY_ACTIVE:
     case MIGRATION_STATUS_POSTCOPY_PAUSED:
@@ -1444,7 +1446,7 @@ static void migrate_fd_cancel(MigrationState *s)
 
     do {
         old_state = s->state;
-        if (!migration_is_running(old_state)) {
+        if (!migration_is_running()) {
             break;
         }
         /* If the migration is paused, kick it out of the pause */
@@ -1929,7 +1931,7 @@ static bool migrate_prepare(MigrationState *s, bool blk, bool blk_inc,
         return true;
     }
 
-    if (migration_is_running(s->state)) {
+    if (migration_is_running()) {
         error_setg(errp, QERR_MIGRATION_ACTIVE);
         return false;
     }
diff --git a/migration/migration.h b/migration/migration.h
index 736460a..e4983db 100644
--- a/migration/migration.h
+++ b/migration/migration.h
@@ -479,8 +479,6 @@ bool migrate_has_error(MigrationState *s);
 
 void migrate_fd_connect(MigrationState *s, Error *error_in);
 
-bool migration_is_running(int state);
-
 int migrate_init(MigrationState *s, Error **errp);
 bool migration_is_blocked(Error **errp);
 /* True if outgoing migration has entered postcopy phase */
diff --git a/migration/options.c b/migration/options.c
index 3e3e0b9..6e11d60 100644
--- a/migration/options.c
+++ b/migration/options.c
@@ -653,7 +653,7 @@ bool migrate_cap_set(int cap, bool value, Error **errp)
     MigrationState *s = migrate_get_current();
     bool new_caps[MIGRATION_CAPABILITY__MAX];
 
-    if (migration_is_running(s->state)) {
+    if (migration_is_running()) {
         error_setg(errp, QERR_MIGRATION_ACTIVE);
         return false;
     }
@@ -697,7 +697,7 @@ void qmp_migrate_set_capabilities(MigrationCapabilityStatusList *params,
     MigrationCapabilityStatusList *cap;
     bool new_caps[MIGRATION_CAPABILITY__MAX];
 
-    if (migration_is_running(s->state) || migration_in_colo_state()) {
+    if (migration_is_running() || migration_in_colo_state()) {
         error_setg(errp, QERR_MIGRATION_ACTIVE);
         return;
     }
diff --git a/migration/savevm.c b/migration/savevm.c
index d612c8a..44cf436 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -1704,7 +1704,7 @@ static int qemu_savevm_state(QEMUFile *f, Error **errp)
     MigrationState *ms = migrate_get_current();
     MigrationStatus status;
 
-    if (migration_is_running(ms->state)) {
+    if (migration_is_running()) {
         error_setg(errp, QERR_MIGRATION_ACTIVE);
         return -EINVAL;
     }
diff --git a/system/dirtylimit.c b/system/dirtylimit.c
index 051e031..1622bb7 100644
--- a/system/dirtylimit.c
+++ b/system/dirtylimit.c
@@ -451,7 +451,7 @@ static bool dirtylimit_is_allowed(void)
 {
     MigrationState *ms = migrate_get_current();
 
-    if (migration_is_running(ms->state) &&
+    if (migration_is_running() &&
         (!qemu_thread_is_self(&ms->thread)) &&
         migrate_dirty_limit() &&
         dirtylimit_in_service()) {
diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c
index 422e4f1..cf046db 100644
--- a/target/riscv/kvm/kvm-cpu.c
+++ b/target/riscv/kvm/kvm-cpu.c
@@ -44,7 +44,7 @@
 #include "kvm_riscv.h"
 #include "sbi_ecall_interface.h"
 #include "chardev/char-fe.h"
-#include "migration/migration.h"
+#include "migration/misc.h"
 #include "sysemu/runstate.h"
 #include "hw/riscv/numa.h"
 
@@ -700,7 +700,7 @@ static void kvm_riscv_put_regs_timer(CPUState *cs)
      * frequency. Therefore, we should check whether they are the same here
      * during the migration.
      */
-    if (migration_is_running(migrate_get_current()->state)) {
+    if (migration_is_running()) {
         KVM_RISCV_GET_TIMER(cs, frequency, reg);
         if (reg != env->kvm_timer_frequency) {
             error_report("Dst Hosts timer frequency != Src Hosts");
-- 
1.8.3.1



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

* [PATCH V1 05/10] migration: export vcpu_dirty_limit_period
  2024-02-27 17:43 [PATCH V1 00/10] privatize migration.h Steve Sistare
                   ` (3 preceding siblings ...)
  2024-02-27 17:43 ` [PATCH V1 04/10] migration: export migration_is_running Steve Sistare
@ 2024-02-27 17:43 ` Steve Sistare
  2024-02-27 17:43 ` [PATCH V1 06/10] migration: migration_thread_is_self Steve Sistare
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Steve Sistare @ 2024-02-27 17:43 UTC (permalink / raw
  To: qemu-devel
  Cc: Alex Williamson, Cedric Le Goater, Michael S. Tsirkin,
	David Hildenbrand, Peter Xu, Fabiano Rosas, Hailiang Zhang,
	Zhang Chen, Li Zhijian, Jason Wang, Hyman Huang, Song Gao,
	Alistair Francis, Steve Sistare

Define and export vcpu_dirty_limit_period to eliminate a dependency
on MigrationState.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
---
 include/migration/client-options.h | 1 +
 migration/options.c                | 7 +++++++
 system/dirtylimit.c                | 3 +--
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/include/migration/client-options.h b/include/migration/client-options.h
index 887fea1..59f4b55 100644
--- a/include/migration/client-options.h
+++ b/include/migration/client-options.h
@@ -20,5 +20,6 @@ bool migrate_switchover_ack(void);
 /* parameters */
 
 MigMode migrate_mode(void);
+uint64_t migrate_vcpu_dirty_limit_period(void);
 
 #endif
diff --git a/migration/options.c b/migration/options.c
index 6e11d60..317c620 100644
--- a/migration/options.c
+++ b/migration/options.c
@@ -896,6 +896,13 @@ const char *migrate_tls_hostname(void)
     return s->parameters.tls_hostname;
 }
 
+uint64_t migrate_vcpu_dirty_limit_period(void)
+{
+    MigrationState *s = migrate_get_current();
+
+    return s->parameters.x_vcpu_dirty_limit_period;
+}
+
 uint64_t migrate_xbzrle_cache_size(void)
 {
     MigrationState *s = migrate_get_current();
diff --git a/system/dirtylimit.c b/system/dirtylimit.c
index 1622bb7..b0afaa0 100644
--- a/system/dirtylimit.c
+++ b/system/dirtylimit.c
@@ -77,14 +77,13 @@ static bool dirtylimit_quit;
 
 static void vcpu_dirty_rate_stat_collect(void)
 {
-    MigrationState *s = migrate_get_current();
     VcpuStat stat;
     int i = 0;
     int64_t period = DIRTYLIMIT_CALC_TIME_MS;
 
     if (migrate_dirty_limit() &&
         migration_is_active()) {
-        period = s->parameters.x_vcpu_dirty_limit_period;
+        period = migrate_vcpu_dirty_limit_period();
     }
 
     /* calculate vcpu dirtyrate */
-- 
1.8.3.1



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

* [PATCH V1 06/10] migration: migration_thread_is_self
  2024-02-27 17:43 [PATCH V1 00/10] privatize migration.h Steve Sistare
                   ` (4 preceding siblings ...)
  2024-02-27 17:43 ` [PATCH V1 05/10] migration: export vcpu_dirty_limit_period Steve Sistare
@ 2024-02-27 17:43 ` Steve Sistare
  2024-02-27 17:43 ` [PATCH V1 07/10] migration: migration_is_device Steve Sistare
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Steve Sistare @ 2024-02-27 17:43 UTC (permalink / raw
  To: qemu-devel
  Cc: Alex Williamson, Cedric Le Goater, Michael S. Tsirkin,
	David Hildenbrand, Peter Xu, Fabiano Rosas, Hailiang Zhang,
	Zhang Chen, Li Zhijian, Jason Wang, Hyman Huang, Song Gao,
	Alistair Francis, Steve Sistare

Define and export migration_thread_is_self to eliminate a dependency
on MigrationState.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
---
 include/migration/misc.h | 1 +
 migration/migration.c    | 7 +++++++
 system/dirtylimit.c      | 5 +----
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/include/migration/misc.h b/include/migration/misc.h
index 7526977..c4b5416 100644
--- a/include/migration/misc.h
+++ b/include/migration/misc.h
@@ -61,6 +61,7 @@ void migration_object_init(void);
 void migration_shutdown(void);
 bool migration_is_idle(void);
 bool migration_is_active(void);
+bool migration_thread_is_self(void);
 bool migration_is_setup_or_active(void);
 bool migrate_mode_is_cpr(MigrationState *);
 
diff --git a/migration/migration.c b/migration/migration.c
index 98bfc90..27af48c 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1614,6 +1614,13 @@ bool migration_is_active(void)
             s->state == MIGRATION_STATUS_POSTCOPY_ACTIVE);
 }
 
+bool migration_thread_is_self(void)
+{
+    MigrationState *s = current_migration;
+
+    return qemu_thread_is_self(&s->thread);
+}
+
 bool migrate_mode_is_cpr(MigrationState *s)
 {
     return s->parameters.mode == MIG_MODE_CPR_REBOOT;
diff --git a/system/dirtylimit.c b/system/dirtylimit.c
index b0afaa0..ab20da3 100644
--- a/system/dirtylimit.c
+++ b/system/dirtylimit.c
@@ -25,7 +25,6 @@
 #include "sysemu/kvm.h"
 #include "trace.h"
 #include "migration/misc.h"
-#include "migration/migration.h"
 
 /*
  * Dirtylimit stop working if dirty page rate error
@@ -448,10 +447,8 @@ static void dirtylimit_cleanup(void)
  */
 static bool dirtylimit_is_allowed(void)
 {
-    MigrationState *ms = migrate_get_current();
-
     if (migration_is_running() &&
-        (!qemu_thread_is_self(&ms->thread)) &&
+        !migration_thread_is_self() &&
         migrate_dirty_limit() &&
         dirtylimit_in_service()) {
         return false;
-- 
1.8.3.1



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

* [PATCH V1 07/10] migration: migration_is_device
  2024-02-27 17:43 [PATCH V1 00/10] privatize migration.h Steve Sistare
                   ` (5 preceding siblings ...)
  2024-02-27 17:43 ` [PATCH V1 06/10] migration: migration_thread_is_self Steve Sistare
@ 2024-02-27 17:43 ` Steve Sistare
  2024-02-27 17:43 ` [PATCH V1 08/10] migration: migration_file_set_error Steve Sistare
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Steve Sistare @ 2024-02-27 17:43 UTC (permalink / raw
  To: qemu-devel
  Cc: Alex Williamson, Cedric Le Goater, Michael S. Tsirkin,
	David Hildenbrand, Peter Xu, Fabiano Rosas, Hailiang Zhang,
	Zhang Chen, Li Zhijian, Jason Wang, Hyman Huang, Song Gao,
	Alistair Francis, Steve Sistare

Define and export migration_is_device to eliminate a dependency
on MigrationState.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
---
 hw/vfio/common.c         | 4 +---
 include/migration/misc.h | 1 +
 migration/migration.c    | 7 +++++++
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/hw/vfio/common.c b/hw/vfio/common.c
index 2dbbf62..de01068 100644
--- a/hw/vfio/common.c
+++ b/hw/vfio/common.c
@@ -180,10 +180,8 @@ bool vfio_device_state_is_precopy(VFIODevice *vbasedev)
 static bool vfio_devices_all_dirty_tracking(VFIOContainerBase *bcontainer)
 {
     VFIODevice *vbasedev;
-    MigrationState *ms = migrate_get_current();
 
-    if (!migration_is_active() &&
-        ms->state != MIGRATION_STATUS_DEVICE) {
+    if (!migration_is_active() && !migration_is_device()) {
         return false;
     }
 
diff --git a/include/migration/misc.h b/include/migration/misc.h
index c4b5416..28cfaed 100644
--- a/include/migration/misc.h
+++ b/include/migration/misc.h
@@ -61,6 +61,7 @@ void migration_object_init(void);
 void migration_shutdown(void);
 bool migration_is_idle(void);
 bool migration_is_active(void);
+bool migration_is_device(void);
 bool migration_thread_is_self(void);
 bool migration_is_setup_or_active(void);
 bool migrate_mode_is_cpr(MigrationState *);
diff --git a/migration/migration.c b/migration/migration.c
index 27af48c..6b386af 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1614,6 +1614,13 @@ bool migration_is_active(void)
             s->state == MIGRATION_STATUS_POSTCOPY_ACTIVE);
 }
 
+bool migration_is_device(void)
+{
+    MigrationState *s = current_migration;
+
+    return s->state == MIGRATION_STATUS_DEVICE;
+}
+
 bool migration_thread_is_self(void)
 {
     MigrationState *s = current_migration;
-- 
1.8.3.1



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

* [PATCH V1 08/10] migration: migration_file_set_error
  2024-02-27 17:43 [PATCH V1 00/10] privatize migration.h Steve Sistare
                   ` (6 preceding siblings ...)
  2024-02-27 17:43 ` [PATCH V1 07/10] migration: migration_is_device Steve Sistare
@ 2024-02-27 17:43 ` Steve Sistare
  2024-02-27 17:43 ` [PATCH V1 09/10] migration: privatize colo interfaces Steve Sistare
  2024-02-27 17:43 ` [PATCH V1 10/10] migration: purge MigrationState from public interface Steve Sistare
  9 siblings, 0 replies; 12+ messages in thread
From: Steve Sistare @ 2024-02-27 17:43 UTC (permalink / raw
  To: qemu-devel
  Cc: Alex Williamson, Cedric Le Goater, Michael S. Tsirkin,
	David Hildenbrand, Peter Xu, Fabiano Rosas, Hailiang Zhang,
	Zhang Chen, Li Zhijian, Jason Wang, Hyman Huang, Song Gao,
	Alistair Francis, Steve Sistare

Define and export migration_file_set_error to eliminate a dependency
on MigrationState.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
---
 hw/vfio/common.c         |  9 +--------
 hw/vfio/migration.c      | 11 +++--------
 include/migration/misc.h |  2 ++
 migration/migration.c    | 11 +++++++++++
 4 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/hw/vfio/common.c b/hw/vfio/common.c
index de01068..b44204e 100644
--- a/hw/vfio/common.c
+++ b/hw/vfio/common.c
@@ -39,7 +39,6 @@
 #include "sysemu/runstate.h"
 #include "trace.h"
 #include "qapi/error.h"
-#include "migration/migration.h"
 #include "migration/misc.h"
 #include "migration/blocker.h"
 #include "migration/qemu-file.h"
@@ -150,14 +149,8 @@ bool vfio_viommu_preset(VFIODevice *vbasedev)
 
 static void vfio_set_migration_error(int err)
 {
-    MigrationState *ms = migrate_get_current();
-
     if (migration_is_setup_or_active()) {
-        WITH_QEMU_LOCK_GUARD(&ms->qemu_file_lock) {
-            if (ms->to_dst_file) {
-                qemu_file_set_error(ms->to_dst_file, err);
-            }
-        }
+        migration_file_set_error(err);
     }
 }
 
diff --git a/hw/vfio/migration.c b/hw/vfio/migration.c
index 5d4a23c..c5cb61d 100644
--- a/hw/vfio/migration.c
+++ b/hw/vfio/migration.c
@@ -17,13 +17,12 @@
 
 #include "sysemu/runstate.h"
 #include "hw/vfio/vfio-common.h"
-#include "migration/migration.h"
+#include "migration/misc.h"
 #include "migration/savevm.h"
 #include "migration/vmstate.h"
 #include "migration/qemu-file.h"
 #include "migration/register.h"
 #include "migration/blocker.h"
-#include "migration/misc.h"
 #include "qapi/error.h"
 #include "exec/ramlist.h"
 #include "exec/ram_addr.h"
@@ -712,9 +711,7 @@ static void vfio_vmstate_change_prepare(void *opaque, bool running,
          * Migration should be aborted in this case, but vm_state_notify()
          * currently does not support reporting failures.
          */
-        if (migrate_get_current()->to_dst_file) {
-            qemu_file_set_error(migrate_get_current()->to_dst_file, ret);
-        }
+        migration_file_set_error(ret);
     }
 
     trace_vfio_vmstate_change_prepare(vbasedev->name, running,
@@ -744,9 +741,7 @@ static void vfio_vmstate_change(void *opaque, bool running, RunState state)
          * Migration should be aborted in this case, but vm_state_notify()
          * currently does not support reporting failures.
          */
-        if (migrate_get_current()->to_dst_file) {
-            qemu_file_set_error(migrate_get_current()->to_dst_file, ret);
-        }
+        migration_file_set_error(ret);
     }
 
     trace_vfio_vmstate_change(vbasedev->name, running, RunState_str(state),
diff --git a/include/migration/misc.h b/include/migration/misc.h
index 28cfaed..e521cd5 100644
--- a/include/migration/misc.h
+++ b/include/migration/misc.h
@@ -109,6 +109,8 @@ bool migration_in_setup(MigrationState *);
 bool migration_has_finished(MigrationState *);
 bool migration_has_failed(MigrationState *);
 bool migration_is_running(void);
+void migration_file_set_error(int err);
+
 /* ...and after the device transmission */
 /* True if incoming migration entered POSTCOPY_INCOMING_DISCARD */
 bool migration_in_incoming_postcopy(void);
diff --git a/migration/migration.c b/migration/migration.c
index 6b386af..4f65a98 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -2996,6 +2996,17 @@ static MigThrError postcopy_pause(MigrationState *s)
     }
 }
 
+void migration_file_set_error(int err)
+{
+    MigrationState *s = current_migration;
+
+    WITH_QEMU_LOCK_GUARD(&s->qemu_file_lock) {
+        if (s->to_dst_file) {
+            qemu_file_set_error(s->to_dst_file, err);
+        }
+    }
+}
+
 static MigThrError migration_detect_error(MigrationState *s)
 {
     int ret;
-- 
1.8.3.1



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

* [PATCH V1 09/10] migration: privatize colo interfaces
  2024-02-27 17:43 [PATCH V1 00/10] privatize migration.h Steve Sistare
                   ` (7 preceding siblings ...)
  2024-02-27 17:43 ` [PATCH V1 08/10] migration: migration_file_set_error Steve Sistare
@ 2024-02-27 17:43 ` Steve Sistare
  2024-02-27 17:43 ` [PATCH V1 10/10] migration: purge MigrationState from public interface Steve Sistare
  9 siblings, 0 replies; 12+ messages in thread
From: Steve Sistare @ 2024-02-27 17:43 UTC (permalink / raw
  To: qemu-devel
  Cc: Alex Williamson, Cedric Le Goater, Michael S. Tsirkin,
	David Hildenbrand, Peter Xu, Fabiano Rosas, Hailiang Zhang,
	Zhang Chen, Li Zhijian, Jason Wang, Hyman Huang, Song Gao,
	Alistair Francis, Steve Sistare

Remove private migration interfaces from net/colo-compare.c and push them
to migration/colo.c.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
---
 migration/colo.c   | 17 +++++++++++------
 net/colo-compare.c |  3 +--
 stubs/colo.c       |  1 -
 3 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/migration/colo.c b/migration/colo.c
index 315e31f..84632a6 100644
--- a/migration/colo.c
+++ b/migration/colo.c
@@ -63,9 +63,9 @@ static bool colo_runstate_is_stopped(void)
     return runstate_check(RUN_STATE_COLO) || !runstate_is_running();
 }
 
-static void colo_checkpoint_notify(void *opaque)
+static void colo_checkpoint_notify(void)
 {
-    MigrationState *s = opaque;
+    MigrationState *s = migrate_get_current();
     int64_t next_notify_time;
 
     qemu_event_set(&s->colo_checkpoint_event);
@@ -74,10 +74,15 @@ static void colo_checkpoint_notify(void *opaque)
     timer_mod(s->colo_delay_timer, next_notify_time);
 }
 
+static void colo_checkpoint_notify_timer(void *opaque)
+{
+    colo_checkpoint_notify();
+}
+
 void colo_checkpoint_delay_set(void)
 {
     if (migration_in_colo_state()) {
-        colo_checkpoint_notify(migrate_get_current());
+        colo_checkpoint_notify();
     }
 }
 
@@ -162,7 +167,7 @@ static void primary_vm_do_failover(void)
      * kick COLO thread which might wait at
      * qemu_sem_wait(&s->colo_checkpoint_sem).
      */
-    colo_checkpoint_notify(s);
+    colo_checkpoint_notify();
 
     /*
      * Wake up COLO thread which may blocked in recv() or send(),
@@ -518,7 +523,7 @@ out:
 
 static void colo_compare_notify_checkpoint(Notifier *notifier, void *data)
 {
-    colo_checkpoint_notify(data);
+    colo_checkpoint_notify();
 }
 
 static void colo_process_checkpoint(MigrationState *s)
@@ -642,7 +647,7 @@ void migrate_start_colo_process(MigrationState *s)
     bql_unlock();
     qemu_event_init(&s->colo_checkpoint_event, false);
     s->colo_delay_timer =  timer_new_ms(QEMU_CLOCK_HOST,
-                                colo_checkpoint_notify, s);
+                                colo_checkpoint_notify_timer, NULL);
 
     qemu_sem_init(&s->colo_exit_sem, 0);
     colo_process_checkpoint(s);
diff --git a/net/colo-compare.c b/net/colo-compare.c
index f2dfc0e..c4ad0ab 100644
--- a/net/colo-compare.c
+++ b/net/colo-compare.c
@@ -28,7 +28,6 @@
 #include "sysemu/iothread.h"
 #include "net/colo-compare.h"
 #include "migration/colo.h"
-#include "migration/migration.h"
 #include "util.h"
 
 #include "block/aio-wait.h"
@@ -189,7 +188,7 @@ static void colo_compare_inconsistency_notify(CompareState *s)
         notify_remote_frame(s);
     } else {
         notifier_list_notify(&colo_compare_notifiers,
-                             migrate_get_current());
+                             NULL);
     }
 }
 
diff --git a/stubs/colo.c b/stubs/colo.c
index 08c9f98..f8c069b 100644
--- a/stubs/colo.c
+++ b/stubs/colo.c
@@ -2,7 +2,6 @@
 #include "qemu/notify.h"
 #include "net/colo-compare.h"
 #include "migration/colo.h"
-#include "migration/migration.h"
 #include "qemu/error-report.h"
 #include "qapi/qapi-commands-migration.h"
 
-- 
1.8.3.1



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

* [PATCH V1 10/10] migration: purge MigrationState from public interface
  2024-02-27 17:43 [PATCH V1 00/10] privatize migration.h Steve Sistare
                   ` (8 preceding siblings ...)
  2024-02-27 17:43 ` [PATCH V1 09/10] migration: privatize colo interfaces Steve Sistare
@ 2024-02-27 17:43 ` Steve Sistare
  9 siblings, 0 replies; 12+ messages in thread
From: Steve Sistare @ 2024-02-27 17:43 UTC (permalink / raw
  To: qemu-devel
  Cc: Alex Williamson, Cedric Le Goater, Michael S. Tsirkin,
	David Hildenbrand, Peter Xu, Fabiano Rosas, Hailiang Zhang,
	Zhang Chen, Li Zhijian, Jason Wang, Hyman Huang, Song Gao,
	Alistair Francis, Steve Sistare

Delete unused accessors and move remaining MigrationState references
from the public file misc.h to the private file migration.h.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
---
 include/migration/misc.h |  9 ++-------
 migration/migration.c    | 10 ----------
 migration/migration.h    |  6 ++++++
 3 files changed, 8 insertions(+), 17 deletions(-)

diff --git a/include/migration/misc.h b/include/migration/misc.h
index e521cd5..c9e200f 100644
--- a/include/migration/misc.h
+++ b/include/migration/misc.h
@@ -64,7 +64,6 @@ bool migration_is_active(void);
 bool migration_is_device(void);
 bool migration_thread_is_self(void);
 bool migration_is_setup_or_active(void);
-bool migrate_mode_is_cpr(MigrationState *);
 
 typedef enum MigrationEventType {
     MIG_EVENT_PRECOPY_SETUP,
@@ -103,19 +102,15 @@ void migration_add_notifier_mode(NotifierWithReturn *notify,
                                  MigrationNotifyFunc func, MigMode mode);
 
 void migration_remove_notifier(NotifierWithReturn *notify);
-int migration_call_notifiers(MigrationState *s, MigrationEventType type,
-                             Error **errp);
-bool migration_in_setup(MigrationState *);
-bool migration_has_finished(MigrationState *);
-bool migration_has_failed(MigrationState *);
 bool migration_is_running(void);
 void migration_file_set_error(int err);
 
-/* ...and after the device transmission */
 /* True if incoming migration entered POSTCOPY_INCOMING_DISCARD */
 bool migration_in_incoming_postcopy(void);
+
 /* True if incoming migration entered POSTCOPY_INCOMING_ADVISE */
 bool migration_incoming_postcopy_advised(void);
+
 /* True if background snapshot is active */
 bool migration_in_bg_snapshot(void);
 
diff --git a/migration/migration.c b/migration/migration.c
index 4f65a98..703a9ee 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1515,16 +1515,6 @@ int migration_call_notifiers(MigrationState *s, MigrationEventType type,
     return ret;
 }
 
-bool migration_in_setup(MigrationState *s)
-{
-    return s->state == MIGRATION_STATUS_SETUP;
-}
-
-bool migration_has_finished(MigrationState *s)
-{
-    return s->state == MIGRATION_STATUS_COMPLETED;
-}
-
 bool migration_has_failed(MigrationState *s)
 {
     return (s->state == MIGRATION_STATUS_CANCELLED ||
diff --git a/migration/migration.h b/migration/migration.h
index e4983db..8045e39 100644
--- a/migration/migration.h
+++ b/migration/migration.h
@@ -26,6 +26,7 @@
 #include "qom/object.h"
 #include "postcopy-ram.h"
 #include "sysemu/runstate.h"
+#include "migration/misc.h"
 
 struct PostcopyBlocktimeContext;
 
@@ -479,12 +480,17 @@ bool migrate_has_error(MigrationState *s);
 
 void migrate_fd_connect(MigrationState *s, Error *error_in);
 
+int migration_call_notifiers(MigrationState *s, MigrationEventType type,
+                             Error **errp);
+
 int migrate_init(MigrationState *s, Error **errp);
 bool migration_is_blocked(Error **errp);
 /* True if outgoing migration has entered postcopy phase */
 bool migration_in_postcopy(void);
 bool migration_postcopy_is_alive(int state);
 MigrationState *migrate_get_current(void);
+bool migration_has_failed(MigrationState *);
+bool migrate_mode_is_cpr(MigrationState *);
 
 uint64_t ram_get_total_transferred_pages(void);
 
-- 
1.8.3.1



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

* Re: [PATCH V1 02/10] migration: export migration_is_setup_or_active
  2024-02-27 17:43 ` [PATCH V1 02/10] migration: export migration_is_setup_or_active Steve Sistare
@ 2024-02-27 18:38   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 12+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-02-27 18:38 UTC (permalink / raw
  To: Steve Sistare, qemu-devel
  Cc: Alex Williamson, Cedric Le Goater, Michael S. Tsirkin,
	David Hildenbrand, Peter Xu, Fabiano Rosas, Hailiang Zhang,
	Zhang Chen, Li Zhijian, Jason Wang, Hyman Huang, Song Gao,
	Alistair Francis

On 27/2/24 18:43, Steve Sistare wrote:
> Delete the MigrationState parameter from migration_is_setup_or_active
> and move it to the public API in misc.h.
> 
> Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
> ---
>   hw/vfio/common.c         |  2 +-
>   include/migration/misc.h |  1 +
>   migration/migration.c    | 12 ++++++------
>   migration/migration.h    |  1 -
>   migration/ram.c          |  5 ++---
>   net/vhost-vdpa.c         |  3 +--
>   6 files changed, 11 insertions(+), 13 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>



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

end of thread, other threads:[~2024-02-27 18:40 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-27 17:43 [PATCH V1 00/10] privatize migration.h Steve Sistare
2024-02-27 17:43 ` [PATCH V1 01/10] migration: remove migration.h references Steve Sistare
2024-02-27 17:43 ` [PATCH V1 02/10] migration: export migration_is_setup_or_active Steve Sistare
2024-02-27 18:38   ` Philippe Mathieu-Daudé
2024-02-27 17:43 ` [PATCH V1 03/10] migration: export migration_is_active Steve Sistare
2024-02-27 17:43 ` [PATCH V1 04/10] migration: export migration_is_running Steve Sistare
2024-02-27 17:43 ` [PATCH V1 05/10] migration: export vcpu_dirty_limit_period Steve Sistare
2024-02-27 17:43 ` [PATCH V1 06/10] migration: migration_thread_is_self Steve Sistare
2024-02-27 17:43 ` [PATCH V1 07/10] migration: migration_is_device Steve Sistare
2024-02-27 17:43 ` [PATCH V1 08/10] migration: migration_file_set_error Steve Sistare
2024-02-27 17:43 ` [PATCH V1 09/10] migration: privatize colo interfaces Steve Sistare
2024-02-27 17:43 ` [PATCH V1 10/10] migration: purge MigrationState from public interface Steve Sistare

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.