Hi, I've made a new code drop available on my git tree. It has 90% of the RDMA code as I would like to do it. There's one major missing FIXME - the allocation of the WR array for the inval requests - I didn't get around to that today, and now I have to run.
In general, we have this setup - the mr_pool gets a new set of function pointers so we can do fmrs or fastregs flexibly - there's a dummy qp associated with each mr pool that is used for inval requests. - there's a new structure called rds_ib_mapping, which has all the relevant details to handle the mapping side of a mr - if you allocate a fastreg mr, we will do the dma mapping etc. The MAP WR will be submitted when you send a message with CMSG_RDMA_DEST referring to this specific MR. - FREE_MR will do the old-fashioned batched unmap for fmrs, but for fastregs we will try to create a clone rds_ib_mapping that contains the s/g list, and the r_key. establishing and invalidating a mapping is decoupled, and happens on separate QPs - I think this is okay as the local_inv request is really just the r_key that we want to invalidate, so we can reuse the struct ib_mr as many times as we want as long as we bump the r_key. Okay, this is very sketchy - please go and look at the code, which should tell you more. Olaf -- Olaf Kirch | --- o --- Nous sommes du soleil we love when we play [EMAIL PROTECTED] | / | \ sol.dhoop.naytheet.ah kin.ir.samse.qurax _______________________________________________ general mailing list general@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general