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.h | |
| parent | 1015ff5476ceed0ff76156c1b60e76f9d21db497 (diff) | |
| download | focaccia-qemu-5e79a4bf032213fd59aa614781751fe76584f8e8.tar.gz focaccia-qemu-5e79a4bf032213fd59aa614781751fe76584f8e8.zip | |
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.h')
| -rw-r--r-- | migration/migration.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/migration/migration.h b/migration/migration.h index 4106a1dc54..cd5534337c 100644 --- a/migration/migration.h +++ b/migration/migration.h @@ -316,6 +316,12 @@ struct MigrationState { * be cleared in the rp_thread! */ bool rp_thread_created; + /* + * Used to synchronize between migration main thread and return + * path thread. The migration thread can wait() on this sem, while + * other threads (e.g., return path thread) can kick it using a + * post(). + */ QemuSemaphore rp_sem; /* * We post to this when we got one PONG from dest. So far it's an @@ -527,4 +533,13 @@ void migration_populate_vfio_info(MigrationInfo *info); void migration_reset_vfio_bytes_transferred(void); void postcopy_temp_page_reset(PostcopyTmpPage *tmp_page); +/* Migration thread waiting for return path thread. */ +void migration_rp_wait(MigrationState *s); +/* + * Kick the migration thread waiting for return path messages. NOTE: the + * name can be slightly confusing (when read as "kick the rp thread"), just + * to remember the target is always the migration thread. + */ +void migration_rp_kick(MigrationState *s); + #endif |