qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V2 00/11] privatize migration.h
@ 2024-03-11 17:48 Steve Sistare
  2024-03-11 17:48 ` [PATCH V2 01/11] migration: remove migration.h references Steve Sistare
                   ` (11 more replies)
  0 siblings, 12 replies; 18+ messages in thread
From: Steve Sistare @ 2024-03-11 17:48 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:
  * singleton patch "migration: export fewer options"

Changes in V2:
  * rebase to migration-next, add RB
  * split last patch

Steve Sistare (11):
  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: delete unused accessors
  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] 18+ messages in thread

* [PATCH V2 01/11] migration: remove migration.h references
  2024-03-11 17:48 [PATCH V2 00/11] privatize migration.h Steve Sistare
@ 2024-03-11 17:48 ` Steve Sistare
  2024-03-11 17:48 ` [PATCH V2 02/11] migration: export migration_is_setup_or_active Steve Sistare
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 18+ messages in thread
From: Steve Sistare @ 2024-03-11 17:48 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] 18+ messages in thread

* [PATCH V2 02/11] migration: export migration_is_setup_or_active
  2024-03-11 17:48 [PATCH V2 00/11] privatize migration.h Steve Sistare
  2024-03-11 17:48 ` [PATCH V2 01/11] migration: remove migration.h references Steve Sistare
@ 2024-03-11 17:48 ` Steve Sistare
  2024-03-11 17:48 ` [PATCH V2 03/11] migration: export migration_is_active Steve Sistare
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 18+ messages in thread
From: Steve Sistare @ 2024-03-11 17:48 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>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 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 a49fcd5..af21403 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1081,9 +1081,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:
@@ -1601,10 +1603,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)
@@ -2297,7 +2297,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 c79e3de..b8a5b67 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -2909,10 +2909,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;
     }
 
@@ -3257,7 +3256,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() &&
             !migrate_mapped_ram()) {
             ret = multifd_send_sync_main();
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] 18+ messages in thread

* [PATCH V2 03/11] migration: export migration_is_active
  2024-03-11 17:48 [PATCH V2 00/11] privatize migration.h Steve Sistare
  2024-03-11 17:48 ` [PATCH V2 01/11] migration: remove migration.h references Steve Sistare
  2024-03-11 17:48 ` [PATCH V2 02/11] migration: export migration_is_setup_or_active Steve Sistare
@ 2024-03-11 17:48 ` Steve Sistare
  2024-03-11 17:48 ` [PATCH V2 04/11] migration: export migration_is_running Steve Sistare
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 18+ messages in thread
From: Steve Sistare @ 2024-03-11 17:48 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 af21403..17859cb 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1406,7 +1406,7 @@ static void migrate_fd_cleanup(MigrationState *s)
         qemu_fclose(tmp);
     }
 
-    assert(!migration_is_active(s));
+    assert(!migration_is_active());
 
     if (s->state == MIGRATION_STATUS_CANCELLING) {
         migrate_set_state(&s->state, MIGRATION_STATUS_CANCELLING,
@@ -1637,8 +1637,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);
 }
@@ -3461,7 +3463,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) {
@@ -3607,7 +3609,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] 18+ messages in thread

* [PATCH V2 04/11] migration: export migration_is_running
  2024-03-11 17:48 [PATCH V2 00/11] privatize migration.h Steve Sistare
                   ` (2 preceding siblings ...)
  2024-03-11 17:48 ` [PATCH V2 03/11] migration: export migration_is_active Steve Sistare
@ 2024-03-11 17:48 ` Steve Sistare
  2024-03-11 17:48 ` [PATCH V2 05/11] migration: export vcpu_dirty_limit_period Steve Sistare
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 18+ messages in thread
From: Steve Sistare @ 2024-03-11 17:48 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 17859cb..546ba86 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1103,9 +1103,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:
@@ -1477,7 +1479,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 */
@@ -1962,7 +1964,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 40eb930..642cfb0 100644
--- a/migration/options.c
+++ b/migration/options.c
@@ -681,7 +681,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;
     }
@@ -725,7 +725,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 dc1fb9c..71974b6 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -1705,7 +1705,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] 18+ messages in thread

* [PATCH V2 05/11] migration: export vcpu_dirty_limit_period
  2024-03-11 17:48 [PATCH V2 00/11] privatize migration.h Steve Sistare
                   ` (3 preceding siblings ...)
  2024-03-11 17:48 ` [PATCH V2 04/11] migration: export migration_is_running Steve Sistare
@ 2024-03-11 17:48 ` Steve Sistare
  2024-03-11 17:48 ` [PATCH V2 06/11] migration: migration_thread_is_self Steve Sistare
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 18+ messages in thread
From: Steve Sistare @ 2024-03-11 17:48 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 642cfb0..09178c6 100644
--- a/migration/options.c
+++ b/migration/options.c
@@ -924,6 +924,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] 18+ messages in thread

* [PATCH V2 06/11] migration: migration_thread_is_self
  2024-03-11 17:48 [PATCH V2 00/11] privatize migration.h Steve Sistare
                   ` (4 preceding siblings ...)
  2024-03-11 17:48 ` [PATCH V2 05/11] migration: export vcpu_dirty_limit_period Steve Sistare
@ 2024-03-11 17:48 ` Steve Sistare
  2024-03-11 17:48 ` [PATCH V2 07/11] migration: migration_is_device Steve Sistare
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 18+ messages in thread
From: Steve Sistare @ 2024-03-11 17:48 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 546ba86..afe72af 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1647,6 +1647,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] 18+ messages in thread

* [PATCH V2 07/11] migration: migration_is_device
  2024-03-11 17:48 [PATCH V2 00/11] privatize migration.h Steve Sistare
                   ` (5 preceding siblings ...)
  2024-03-11 17:48 ` [PATCH V2 06/11] migration: migration_thread_is_self Steve Sistare
@ 2024-03-11 17:48 ` Steve Sistare
  2024-03-11 17:48 ` [PATCH V2 08/11] migration: migration_file_set_error Steve Sistare
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 18+ messages in thread
From: Steve Sistare @ 2024-03-11 17:48 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 afe72af..db1e627 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1647,6 +1647,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] 18+ messages in thread

* [PATCH V2 08/11] migration: migration_file_set_error
  2024-03-11 17:48 [PATCH V2 00/11] privatize migration.h Steve Sistare
                   ` (6 preceding siblings ...)
  2024-03-11 17:48 ` [PATCH V2 07/11] migration: migration_is_device Steve Sistare
@ 2024-03-11 17:48 ` Steve Sistare
  2024-03-11 17:48 ` [PATCH V2 09/11] migration: privatize colo interfaces Steve Sistare
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 18+ messages in thread
From: Steve Sistare @ 2024-03-11 17:48 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 db1e627..216f63d 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -3038,6 +3038,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] 18+ messages in thread

* [PATCH V2 09/11] migration: privatize colo interfaces
  2024-03-11 17:48 [PATCH V2 00/11] privatize migration.h Steve Sistare
                   ` (7 preceding siblings ...)
  2024-03-11 17:48 ` [PATCH V2 08/11] migration: migration_file_set_error Steve Sistare
@ 2024-03-11 17:48 ` Steve Sistare
  2024-03-12  1:18   ` Zhang, Chen
  2024-03-11 17:48 ` [PATCH V2 10/11] migration: delete unused accessors Steve Sistare
                   ` (2 subsequent siblings)
  11 siblings, 1 reply; 18+ messages in thread
From: Steve Sistare @ 2024-03-11 17:48 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] 18+ messages in thread

* [PATCH V2 10/11] migration: delete unused accessors
  2024-03-11 17:48 [PATCH V2 00/11] privatize migration.h Steve Sistare
                   ` (8 preceding siblings ...)
  2024-03-11 17:48 ` [PATCH V2 09/11] migration: privatize colo interfaces Steve Sistare
@ 2024-03-11 17:48 ` Steve Sistare
  2024-03-11 17:48 ` [PATCH V2 11/11] migration: purge MigrationState from public interface Steve Sistare
  2024-03-11 19:30 ` [PATCH V2 00/11] privatize migration.h Peter Xu
  11 siblings, 0 replies; 18+ messages in thread
From: Steve Sistare @ 2024-03-11 17:48 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

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
---
 include/migration/misc.h |  3 ---
 migration/migration.c    | 10 ----------
 2 files changed, 13 deletions(-)

diff --git a/include/migration/misc.h b/include/migration/misc.h
index e521cd5..d563d2c 100644
--- a/include/migration/misc.h
+++ b/include/migration/misc.h
@@ -105,13 +105,10 @@ void migration_add_notifier_mode(NotifierWithReturn *notify,
 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 */
diff --git a/migration/migration.c b/migration/migration.c
index 216f63d..644e073 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1548,16 +1548,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 ||
-- 
1.8.3.1



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

* [PATCH V2 11/11] migration: purge MigrationState from public interface
  2024-03-11 17:48 [PATCH V2 00/11] privatize migration.h Steve Sistare
                   ` (9 preceding siblings ...)
  2024-03-11 17:48 ` [PATCH V2 10/11] migration: delete unused accessors Steve Sistare
@ 2024-03-11 17:48 ` Steve Sistare
  2024-03-11 19:30 ` [PATCH V2 00/11] privatize migration.h Peter Xu
  11 siblings, 0 replies; 18+ messages in thread
From: Steve Sistare @ 2024-03-11 17:48 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

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 | 6 ++----
 migration/migration.h    | 6 ++++++
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/include/migration/misc.h b/include/migration/misc.h
index d563d2c..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,16 +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_has_failed(MigrationState *);
 bool migration_is_running(void);
 void migration_file_set_error(int err);
 
 /* 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.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] 18+ messages in thread

* Re: [PATCH V2 00/11] privatize migration.h
  2024-03-11 17:48 [PATCH V2 00/11] privatize migration.h Steve Sistare
                   ` (10 preceding siblings ...)
  2024-03-11 17:48 ` [PATCH V2 11/11] migration: purge MigrationState from public interface Steve Sistare
@ 2024-03-11 19:30 ` Peter Xu
  2024-03-11 19:45   ` Steven Sistare
  11 siblings, 1 reply; 18+ messages in thread
From: Peter Xu @ 2024-03-11 19:30 UTC (permalink / raw)
  To: Steve Sistare
  Cc: qemu-devel, Alex Williamson, Cedric Le Goater, Michael S. Tsirkin,
	David Hildenbrand, Fabiano Rosas, Hailiang Zhang, Zhang Chen,
	Li Zhijian, Jason Wang, Hyman Huang, Song Gao, Alistair Francis

Steve,

On Mon, Mar 11, 2024 at 10:48:47AM -0700, Steve Sistare wrote:
> Changes in V2:
>   * rebase to migration-next, add RB

Not apply even to master branch.  Note that there're >=1 PULLs sent and
merged since my last reply..  Perhaps you rebased to the "old" next?

-- 
Peter Xu



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

* Re: [PATCH V2 00/11] privatize migration.h
  2024-03-11 19:30 ` [PATCH V2 00/11] privatize migration.h Peter Xu
@ 2024-03-11 19:45   ` Steven Sistare
  2024-03-11 20:24     ` Steven Sistare
  0 siblings, 1 reply; 18+ messages in thread
From: Steven Sistare @ 2024-03-11 19:45 UTC (permalink / raw)
  To: Peter Xu
  Cc: qemu-devel, Alex Williamson, Cedric Le Goater, Michael S. Tsirkin,
	David Hildenbrand, Fabiano Rosas, Hailiang Zhang, Zhang Chen,
	Li Zhijian, Jason Wang, Hyman Huang, Song Gao, Alistair Francis

On 3/11/2024 3:30 PM, Peter Xu wrote:
> Steve,
> 
> On Mon, Mar 11, 2024 at 10:48:47AM -0700, Steve Sistare wrote:
>> Changes in V2:
>>    * rebase to migration-next, add RB
> 
> Not apply even to master branch.  Note that there're >=1 PULLs sent and
> merged since my last reply..  Perhaps you rebased to the "old" next?

I pulled from branch migration-next in https://gitlab.com/peterx/qemu a 
few hours ago, but I must have screwed up somewhere.  I'll figure it out
and post a V4.

- Steve


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

* Re: [PATCH V2 00/11] privatize migration.h
  2024-03-11 19:45   ` Steven Sistare
@ 2024-03-11 20:24     ` Steven Sistare
  2024-03-11 20:28       ` Peter Xu
  0 siblings, 1 reply; 18+ messages in thread
From: Steven Sistare @ 2024-03-11 20:24 UTC (permalink / raw)
  To: Peter Xu
  Cc: qemu-devel, Alex Williamson, Cedric Le Goater, Michael S. Tsirkin,
	David Hildenbrand, Fabiano Rosas, Hailiang Zhang, Zhang Chen,
	Li Zhijian, Jason Wang, Hyman Huang, Song Gao, Alistair Francis

On 3/11/2024 3:45 PM, Steven Sistare wrote:
> On 3/11/2024 3:30 PM, Peter Xu wrote:
>> Steve,
>>
>> On Mon, Mar 11, 2024 at 10:48:47AM -0700, Steve Sistare wrote:
>>> Changes in V2:
>>>    * rebase to migration-next, add RB
>>
>> Not apply even to master branch.  Note that there're >=1 PULLs sent and
>> merged since my last reply..  Perhaps you rebased to the "old" next?
> 
> I pulled from branch migration-next in https://gitlab.com/peterx/qemu a 
> few hours ago, but I must have screwed up somewhere.  I'll figure it out
> and post a V4.

My pull was a fiew hours old, but my patches still apply cleanly to the
most recent tip:
   a1bb5dd169f4 ("migration: Fix format in error message")

I can sent that as V3, but ...
Note that you must apply "migration: export fewer options" before
"privatize migration.h".  If that does not help, I will send V3.

- Steve


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

* Re: [PATCH V2 00/11] privatize migration.h
  2024-03-11 20:24     ` Steven Sistare
@ 2024-03-11 20:28       ` Peter Xu
  2024-03-11 20:34         ` Steven Sistare
  0 siblings, 1 reply; 18+ messages in thread
From: Peter Xu @ 2024-03-11 20:28 UTC (permalink / raw)
  To: Steven Sistare
  Cc: qemu-devel, Alex Williamson, Cedric Le Goater, Michael S. Tsirkin,
	David Hildenbrand, Fabiano Rosas, Hailiang Zhang, Zhang Chen,
	Li Zhijian, Jason Wang, Hyman Huang, Song Gao, Alistair Francis

On Mon, Mar 11, 2024 at 04:24:14PM -0400, Steven Sistare wrote:
> On 3/11/2024 3:45 PM, Steven Sistare wrote:
> > On 3/11/2024 3:30 PM, Peter Xu wrote:
> > > Steve,
> > > 
> > > On Mon, Mar 11, 2024 at 10:48:47AM -0700, Steve Sistare wrote:
> > > > Changes in V2:
> > > >    * rebase to migration-next, add RB
> > > 
> > > Not apply even to master branch.  Note that there're >=1 PULLs sent and
> > > merged since my last reply..  Perhaps you rebased to the "old" next?
> > 
> > I pulled from branch migration-next in https://gitlab.com/peterx/qemu a
> > few hours ago, but I must have screwed up somewhere.  I'll figure it out
> > and post a V4.
> 
> My pull was a fiew hours old, but my patches still apply cleanly to the
> most recent tip:
>   a1bb5dd169f4 ("migration: Fix format in error message")
> 
> I can sent that as V3, but ...
> Note that you must apply "migration: export fewer options" before
> "privatize migration.h".  If that does not help, I will send V3.

Ouch, I forgot that dependency... Sorry.

Yeah it works now.  No need to resend for now.

-- 
Peter Xu



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

* Re: [PATCH V2 00/11] privatize migration.h
  2024-03-11 20:28       ` Peter Xu
@ 2024-03-11 20:34         ` Steven Sistare
  0 siblings, 0 replies; 18+ messages in thread
From: Steven Sistare @ 2024-03-11 20:34 UTC (permalink / raw)
  To: Peter Xu
  Cc: qemu-devel, Alex Williamson, Cedric Le Goater, Michael S. Tsirkin,
	David Hildenbrand, Fabiano Rosas, Hailiang Zhang, Zhang Chen,
	Li Zhijian, Jason Wang, Hyman Huang, Song Gao, Alistair Francis

On 3/11/2024 4:28 PM, Peter Xu wrote:
> On Mon, Mar 11, 2024 at 04:24:14PM -0400, Steven Sistare wrote:
>> On 3/11/2024 3:45 PM, Steven Sistare wrote:
>>> On 3/11/2024 3:30 PM, Peter Xu wrote:
>>>> Steve,
>>>>
>>>> On Mon, Mar 11, 2024 at 10:48:47AM -0700, Steve Sistare wrote:
>>>>> Changes in V2:
>>>>>     * rebase to migration-next, add RB
>>>>
>>>> Not apply even to master branch.  Note that there're >=1 PULLs sent and
>>>> merged since my last reply..  Perhaps you rebased to the "old" next?
>>>
>>> I pulled from branch migration-next in https://gitlab.com/peterx/qemu a
>>> few hours ago, but I must have screwed up somewhere.  I'll figure it out
>>> and post a V4.
>>
>> My pull was a fiew hours old, but my patches still apply cleanly to the
>> most recent tip:
>>    a1bb5dd169f4 ("migration: Fix format in error message")
>>
>> I can sent that as V3, but ...
>> Note that you must apply "migration: export fewer options" before
>> "privatize migration.h".  If that does not help, I will send V3.
> 
> Ouch, I forgot that dependency... Sorry.
> 
> Yeah it works now.  No need to resend for now.

Great! - steve


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

* RE: [PATCH V2 09/11] migration: privatize colo interfaces
  2024-03-11 17:48 ` [PATCH V2 09/11] migration: privatize colo interfaces Steve Sistare
@ 2024-03-12  1:18   ` Zhang, Chen
  0 siblings, 0 replies; 18+ messages in thread
From: Zhang, Chen @ 2024-03-12  1:18 UTC (permalink / raw)
  To: Steve Sistare, qemu-devel@nongnu.org
  Cc: Alex Williamson, Cedric Le Goater, Michael S. Tsirkin,
	David Hildenbrand, Peter Xu, Fabiano Rosas, Zhang, Hailiang,
	Li Zhijian, Jason Wang, Hyman Huang, Song Gao, Alistair Francis



> -----Original Message-----
> From: Steve Sistare <steven.sistare@oracle.com>
> Sent: Tuesday, March 12, 2024 1:49 AM
> To: qemu-devel@nongnu.org
> Cc: Alex Williamson <alex.williamson@redhat.com>; Cedric Le Goater
> <clg@redhat.com>; Michael S. Tsirkin <mst@redhat.com>; David Hildenbrand
> <david@redhat.com>; Peter Xu <peterx@redhat.com>; Fabiano Rosas
> <farosas@suse.de>; Zhang, Hailiang <zhanghailiang@xfusion.com>; Zhang,
> Chen <chen.zhang@intel.com>; Li Zhijian <lizhijian@fujitsu.com>; Jason Wang
> <jasowang@redhat.com>; Hyman Huang <yong.huang@smartx.com>; Song
> Gao <gaosong@loongson.cn>; Alistair Francis <alistair.francis@wdc.com>;
> Steve Sistare <steven.sistare@oracle.com>
> Subject: [PATCH V2 09/11] migration: privatize colo interfaces
> 
> 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>

Reviewed-by: Zhang Chen <chen.zhang@intel.com>

Thanks
Chen

> ---
>  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	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2024-03-12  1:19 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-11 17:48 [PATCH V2 00/11] privatize migration.h Steve Sistare
2024-03-11 17:48 ` [PATCH V2 01/11] migration: remove migration.h references Steve Sistare
2024-03-11 17:48 ` [PATCH V2 02/11] migration: export migration_is_setup_or_active Steve Sistare
2024-03-11 17:48 ` [PATCH V2 03/11] migration: export migration_is_active Steve Sistare
2024-03-11 17:48 ` [PATCH V2 04/11] migration: export migration_is_running Steve Sistare
2024-03-11 17:48 ` [PATCH V2 05/11] migration: export vcpu_dirty_limit_period Steve Sistare
2024-03-11 17:48 ` [PATCH V2 06/11] migration: migration_thread_is_self Steve Sistare
2024-03-11 17:48 ` [PATCH V2 07/11] migration: migration_is_device Steve Sistare
2024-03-11 17:48 ` [PATCH V2 08/11] migration: migration_file_set_error Steve Sistare
2024-03-11 17:48 ` [PATCH V2 09/11] migration: privatize colo interfaces Steve Sistare
2024-03-12  1:18   ` Zhang, Chen
2024-03-11 17:48 ` [PATCH V2 10/11] migration: delete unused accessors Steve Sistare
2024-03-11 17:48 ` [PATCH V2 11/11] migration: purge MigrationState from public interface Steve Sistare
2024-03-11 19:30 ` [PATCH V2 00/11] privatize migration.h Peter Xu
2024-03-11 19:45   ` Steven Sistare
2024-03-11 20:24     ` Steven Sistare
2024-03-11 20:28       ` Peter Xu
2024-03-11 20:34         ` Steven Sistare

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).