Hi Isaku, I hit a seg in qemu_rdma_cleanup in the code changed by your '[PATCH] rdma: clean up of qemu_rdma_cleanup()'
migration-rdma.c ~ 2241 if (rdma->qp) { rdma_destroy_qp(rdma->cm_id); rdma->qp = NULL; } Your patch changed that to free cm_id at that point rather than qp; but in my case cm_id is NULL and so rdma_destroy_qp segs. given that there is a : if (rdma->cm_id) { rdma_destroy_id(rdma->cm_id); rdma->cm_id = NULL; } later down, and there is now no longer any destroy of rdma->qp I don't understand your change. Your change text says: '- RDMAContext::qp is created by rdma_create_qp() so that it should be destroyed by rdma_destroy_qp(). not ibv_destroy_qp()' but the diff is: if (rdma->qp) { - ibv_destroy_qp(rdma->qp); + rdma_destroy_qp(rdma->cm_id); rdma->qp = NULL; should that have been rdma_destroy_qp(rdma->qp)? Dave (who doesn't yet know enough RDMA to be dangerous) -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK