diff options
author | Lidong Chen <jemmy858585@gmail.com> | 2018-08-06 21:29:29 +0800 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2018-08-22 12:12:26 +0200 |
commit | 74637e6f08fceda988065f02c25d2cdb2ccd1762 (patch) | |
tree | 20b64090c48e3c1c6a660f7d4aaae8ffbad84002 /migration/savevm.c | |
parent | 55cc1b5937a8e709e4c102e74b206281073aab82 (diff) | |
download | qemu-74637e6f08fceda988065f02c25d2cdb2ccd1762.zip |
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/savevm.c')
-rw-r--r-- | migration/savevm.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/migration/savevm.c b/migration/savevm.c index 7f92567a10..13e51f0e34 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -1622,6 +1622,7 @@ static void *postcopy_ram_listen_thread(void *opaque) qemu_sem_post(&mis->listen_thread_sem); trace_postcopy_ram_listen_thread_start(); + rcu_register_thread(); /* * Because we're a thread and not a coroutine we can't yield * in qemu_file, and thus we must be blocking now. @@ -1662,6 +1663,7 @@ static void *postcopy_ram_listen_thread(void *opaque) * to leave the guest running and fire MCEs for pages that never * arrived as a desperate recovery step. */ + rcu_unregister_thread(); exit(EXIT_FAILURE); } @@ -1676,6 +1678,7 @@ static void *postcopy_ram_listen_thread(void *opaque) migration_incoming_state_destroy(); qemu_loadvm_state_cleanup(); + rcu_unregister_thread(); return NULL; } |