summary refs log tree commit diff stats
path: root/migration/migration.c
diff options
context:
space:
mode:
authorJiang Jiacheng <jiangjiacheng@huawei.com>2023-02-03 15:35:19 +0800
committerJuan Quintela <quintela@redhat.com>2023-02-06 19:22:57 +0100
commit1b1f4ab69c41279a45ccd0d3178e83471e6e4ec1 (patch)
treeb517d16a2b4d554b13749cab5324ffb242070202 /migration/migration.c
parent671326201dac8fe91222ba0045709f04a8ec3af4 (diff)
downloadfocaccia-qemu-1b1f4ab69c41279a45ccd0d3178e83471e6e4ec1.tar.gz
focaccia-qemu-1b1f4ab69c41279a45ccd0d3178e83471e6e4ec1.zip
migration: save/delete migration thread info
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 <jiangjiacheng@huawei.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration/migration.c')
-rw-r--r--migration/migration.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/migration/migration.c b/migration/migration.c
index 66c74f8e17..7a14aa98d8 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -58,6 +58,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"
@@ -4028,10 +4029,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));
@@ -4108,6 +4112,7 @@ static void *migration_thread(void *opaque)
     migration_iteration_finish(s);
     object_unref(OBJECT(s));
     rcu_unregister_thread();
+    MigrationThreadDel(thread);
     return NULL;
 }