On Wed, Jul 08, 2015 at 01:08:42PM -0600, Jason Gunthorpe wrote:
> Then, what is left is all remote MRs and maybe it will be clearer what
> to do about them then...
>From looking at that for a while the APIs needed seem pretty simple
to me from a consumer perspective:
struct rdma_mr *rmda_alloc_mr(struct ib_pd *pd, unsigned int nr_pages);
void rdma_free_mr(struct rdma_mr *mr);
/* updates *sg if the SG couldn't be fully registered due to offsets */
int rdma_register_sg(struct rdma_mr *mr, struct scatterlist **sg,
u32 *pkey, u32 *offset, u32 *len);
void rdma_unregister_sg(struct rdma_mr *mr, struct scatterlist *sg);
plus maybe a pool alloc API if we care about FMR performance.
Note that this assumes that the iSER bounce buffer hacks are replaced
with the QUEUE_FLAG_SG_GAPS flags and a change to the SG_IO code to
bounce buffer for vectored SG_IO calls. I'm happy to provide a patch
for that if I can find a volunteer for testing.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html