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>
This commit is contained in:
Lidong Chen 2018-08-06 21:29:29 +08:00 committed by Juan Quintela
parent 55cc1b5937
commit 74637e6f08
6 changed files with 183 additions and 26 deletions

View file

@ -534,6 +534,7 @@ void *colo_process_incoming_thread(void *opaque)
uint64_t value;
Error *local_err = NULL;
rcu_register_thread();
qemu_sem_init(&mis->colo_incoming_sem, 0);
migrate_set_state(&mis->state, MIGRATION_STATUS_ACTIVE,
@ -666,5 +667,6 @@ out:
}
migration_incoming_exit_colo();
rcu_unregister_thread();
return NULL;
}