To support query migration thread infomation, save and delete thread(live_migration and multifdsend) information at thread creation and finish.
Signed-off-by: Jiang Jiacheng <jiangjiach...@huawei.com> --- migration/migration.c | 5 +++++ migration/multifd.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/migration/migration.c b/migration/migration.c index 52b5d39244..cf895b1a3d 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -57,6 +57,7 @@ #include "net/announce.h" #include "qemu/queue.h" #include "multifd.h" +#include "threadinfo.h" #include "qemu/yank.h" #include "sysemu/cpus.h" #include "yank_functions.h" @@ -3951,10 +3952,13 @@ static void qemu_savevm_wait_unplug(MigrationState *s, int old_state, static void *migration_thread(void *opaque) { MigrationState *s = opaque; + MigrationThread *thread = NULL; int64_t setup_start = qemu_clock_get_ms(QEMU_CLOCK_HOST); MigThrError thr_error; bool urgent = false; + thread = MigrationThreadAdd("live_migration", qemu_get_thread_id()); + rcu_register_thread(); object_ref(OBJECT(s)); @@ -4031,6 +4035,7 @@ static void *migration_thread(void *opaque) migration_iteration_finish(s); object_unref(OBJECT(s)); rcu_unregister_thread(); + MigrationThreadDel(thread); return NULL; } diff --git a/migration/multifd.c b/migration/multifd.c index 000ca4d4ec..c350547562 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -24,6 +24,7 @@ #include "qemu-file.h" #include "trace.h" #include "multifd.h" +#include "threadinfo.h" #include "qemu/yank.h" #include "io/channel-socket.h" @@ -646,10 +647,13 @@ int multifd_send_sync_main(QEMUFile *f) static void *multifd_send_thread(void *opaque) { MultiFDSendParams *p = opaque; + MigrationThread *thread = NULL; Error *local_err = NULL; int ret = 0; bool use_zero_copy_send = migrate_use_zero_copy_send(); + thread = MigrationThreadAdd(p->name, qemu_get_thread_id()); + trace_multifd_send_thread_start(p->id); rcu_register_thread(); @@ -759,6 +763,7 @@ out: qemu_mutex_unlock(&p->mutex); rcu_unregister_thread(); + MigrationThreadDel(thread); trace_multifd_send_thread_end(p->id, p->num_packets, p->total_normal_pages); return NULL; -- 2.33.0