aboutsummaryrefslogtreecommitdiff
path: root/migration/multifd.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/multifd.c
parent671326201dac8fe91222ba0045709f04a8ec3af4 (diff)
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/multifd.c')
-rw-r--r--migration/multifd.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/migration/multifd.c b/migration/multifd.c
index 437bf6f808..b7ad7002e0 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"
@@ -649,10 +650,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();
@@ -762,6 +766,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;