diff options
author | Steve Sistare <steven.sistare@oracle.com> | 2024-03-11 10:48:53 -0700 |
---|---|---|
committer | Peter Xu <peterx@redhat.com> | 2024-03-11 16:28:59 -0400 |
commit | 6e7856397641326163ef493197a849f99a9a6a44 (patch) | |
tree | 2c1994e733f33ea82efdde6602bf48c5b9332364 | |
parent | 714f33123bfc73c6caacd19a44e082da8cdc96e3 (diff) | |
download | qemu-6e7856397641326163ef493197a849f99a9a6a44.zip qemu-6e7856397641326163ef493197a849f99a9a6a44.tar.gz qemu-6e7856397641326163ef493197a849f99a9a6a44.tar.bz2 |
migration: migration_thread_is_self
Define and export migration_thread_is_self to eliminate a dependency
on MigrationState.
Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Link: https://lore.kernel.org/r/1710179338-294359-7-git-send-email-steven.sistare@oracle.com
Signed-off-by: Peter Xu <peterx@redhat.com>
-rw-r--r-- | include/migration/misc.h | 1 | ||||
-rw-r--r-- | migration/migration.c | 7 | ||||
-rw-r--r-- | 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; |