It's not necessary to send RDMA_CONTROL_ERROR when clean up rdma resource. If rdma->error_state is ture, the message may not send successfully. and the cm event can also notify the peer qemu.
Signed-off-by: Lidong Chen <lidongc...@tencent.com> --- migration/rdma.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/migration/rdma.c b/migration/rdma.c index 62de2ec..14cdf82 100644 --- a/migration/rdma.c +++ b/migration/rdma.c @@ -2305,17 +2305,6 @@ static void qemu_rdma_cleanup(RDMAContext *rdma) int idx; if (rdma->cm_id && rdma->connected) { - if ((rdma->error_state || - migrate_get_current()->state == MIGRATION_STATUS_CANCELLING) && - !rdma->received_error) { - RDMAControlHeader head = { .len = 0, - .type = RDMA_CONTROL_ERROR, - .repeat = 1, - }; - error_report("Early error. Sending error."); - qemu_rdma_post_send_control(rdma, NULL, &head); - } - rdma_disconnect(rdma->cm_id); trace_qemu_rdma_cleanup_disconnect(); rdma->connected = false; -- 1.8.3.1