aboutsummaryrefslogtreecommitdiff
path: root/migration/migration.c
diff options
context:
space:
mode:
authorLidong Chen <jemmy858585@gmail.com>2018-08-06 21:29:29 +0800
committerJuan Quintela <quintela@redhat.com>2018-08-22 12:12:26 +0200
commit74637e6f08fceda988065f02c25d2cdb2ccd1762 (patch)
tree20b64090c48e3c1c6a660f7d4aaae8ffbad84002 /migration/migration.c
parent55cc1b5937a8e709e4c102e74b206281073aab82 (diff)
downloadqemu-74637e6f08fceda988065f02c25d2cdb2ccd1762.zip
qemu-74637e6f08fceda988065f02c25d2cdb2ccd1762.tar.gz
qemu-74637e6f08fceda988065f02c25d2cdb2ccd1762.tar.bz2
migration: implement bi-directional RDMA QIOChannel
This patch implements bi-directional RDMA QIOChannel. Because different threads may access RDMAQIOChannel currently, this patch use RCU to protect it. Signed-off-by: Lidong Chen <lidongchen@tencent.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration/migration.c')
-rw-r--r--migration/migration.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/migration/migration.c b/migration/migration.c
index 570da6c..6f2b506 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -2121,6 +2121,7 @@ static void *source_return_path_thread(void *opaque)
int res;
trace_source_return_path_thread_entry();
+ rcu_register_thread();
retry:
while (!ms->rp_state.error && !qemu_file_get_error(rp) &&
@@ -2260,6 +2261,7 @@ out:
trace_source_return_path_thread_end();
ms->rp_state.from_dst_file = NULL;
qemu_fclose(rp);
+ rcu_unregister_thread();
return NULL;
}