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

Reply via email to