Message ID | 1612339311-114805-16-git-send-email-zhengchuan@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Support Multifd for RDMA migration | expand |
* Chuan Zheng (zhengchuan@huawei.com) wrote: > All data is sent by multifd Channels, so we only register its for > multifd channels and main channel don't register its. > > Signed-off-by: Zhimin Feng <fengzhimin1@huawei.com> > Signed-off-by: Chuan Zheng <zhengchuan@huawei.com> > --- > migration/rdma.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/migration/rdma.c b/migration/rdma.c > index c906cc7..f5eb563 100644 > --- a/migration/rdma.c > +++ b/migration/rdma.c > @@ -3939,6 +3939,12 @@ static int qemu_rdma_registration_stop(QEMUFile *f, void *opaque, > > qemu_sem_post(&multifd_send_param->sem_sync); > } > + > + /* > + * Use multifd to migrate, we only register memory for > + * multifd RDMA channel and main channel don't register it. > + */ > + goto wait_reg_complete; No! No goto's for control flow except for error exits. > } > > /* > @@ -3999,6 +4005,8 @@ static int qemu_rdma_registration_stop(QEMUFile *f, void *opaque, > rdma->dest_blocks[i].remote_host_addr; > local->block[i].remote_rkey = rdma->dest_blocks[i].remote_rkey; > } > + > +wait_reg_complete: > /* Wait for all multifd channels to complete registration */ > if (migrate_use_multifd()) { > int i; > -- > 1.8.3.1 >
diff --git a/migration/rdma.c b/migration/rdma.c index c906cc7..f5eb563 100644 --- a/migration/rdma.c +++ b/migration/rdma.c @@ -3939,6 +3939,12 @@ static int qemu_rdma_registration_stop(QEMUFile *f, void *opaque, qemu_sem_post(&multifd_send_param->sem_sync); } + + /* + * Use multifd to migrate, we only register memory for + * multifd RDMA channel and main channel don't register it. + */ + goto wait_reg_complete; } /* @@ -3999,6 +4005,8 @@ static int qemu_rdma_registration_stop(QEMUFile *f, void *opaque, rdma->dest_blocks[i].remote_host_addr; local->block[i].remote_rkey = rdma->dest_blocks[i].remote_rkey; } + +wait_reg_complete: /* Wait for all multifd channels to complete registration */ if (migrate_use_multifd()) { int i;