RFC: a first draft of a generic RDMA READ/WRITE API

Christoph Hellwig
2016-02-27T18:10:18Z

This series contains patches that implement a first version of a generic
API to handle RDMA READ/WRITE operations as commonly used on the target
(or server) side for storage protocols.

This has been developed for the upcoming NVMe over Fabrics target, and
extensively teѕted as part of that, although this upstream version has
additional updates over the one we're currently using.

It hides details such as the use of MRs for iWarp devices, and will allow
looking at other HCA specifics easily in the future.

This series contains a RFC conversion of the iSER target, although that
has hacky and probably not working signature MR support, otherwise I
would have actually proposed it for inclusion. The iSER conversion
also contains my conversion to the CQ API, which now landed іn the
target tree in an updated version. It is only included for conveniance.

One thing that I could not wrap my head around is support for the
current SRP target - SRP allows for multiple rkeys in a single request,
and the SRP target driver wants to map those to a single struct
scatterlist. If anyone has ideas how to support that nicely: ideas
are welcome.

I also have a git tree available at:

git://git.infradead.org/users/hch/rdma.git rdma-rw-api