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

Reply via email to