Re: [PATCH V3 1/5] RDMA/core: Transport-independent access flags

'Christoph Hellwig'
2015-07-08T20:32:05Z

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