diff options
author | Peter Xu <peterx@redhat.com> | 2023-10-04 18:02:37 -0400 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2023-10-11 11:17:05 +0200 |
commit | 5e79a4bf032213fd59aa614781751fe76584f8e8 (patch) | |
tree | 6edcf90c408ce149576a550c1cf180328fa4826d /migration/migration.c | |
parent | 1015ff5476ceed0ff76156c1b60e76f9d21db497 (diff) |
migration: Add migration_rp_wait|kick()
It's just a simple wrapper for rp_sem on either wait() or kick(), make it
even clearer on how it is used. Prepared to be used even for other things.
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-ID: <20231004220240.167175-8-peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration/migration.c')
-rw-r--r-- | migration/migration.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/migration/migration.c b/migration/migration.c index 409eb3e916..1c6c81ad49 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -1763,6 +1763,16 @@ static void mark_source_rp_bad(MigrationState *s) s->rp_state.error = true; } +void migration_rp_wait(MigrationState *s) +{ + qemu_sem_wait(&s->rp_state.rp_sem); +} + +void migration_rp_kick(MigrationState *s) +{ + qemu_sem_post(&s->rp_state.rp_sem); +} + static struct rp_cmd_args { ssize_t len; /* -1 = variable */ const char *name; @@ -1835,7 +1845,7 @@ static int migrate_handle_rp_resume_ack(MigrationState *s, uint32_t value) MIGRATION_STATUS_POSTCOPY_ACTIVE); /* Notify send thread that time to continue send pages */ - qemu_sem_post(&s->rp_state.rp_sem); + migration_rp_kick(s); return 0; } @@ -2464,7 +2474,7 @@ static int postcopy_resume_handshake(MigrationState *s) qemu_savevm_send_postcopy_resume(s->to_dst_file); while (s->state == MIGRATION_STATUS_POSTCOPY_RECOVER) { - qemu_sem_wait(&s->rp_state.rp_sem); + migration_rp_wait(s); } if (s->state == MIGRATION_STATUS_POSTCOPY_ACTIVE) { |