mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 17:08:10 +00:00
f13193f50b
The plan is to replace the local bespoke code that constructs and posts RDMA Read and Write Work Requests with calls to the rdma_rw API. This shares code with other RDMA-enabled ULPs that manages the gory details of buffer registration and posting Work Requests. Some design notes: o The structure of RPC-over-RDMA transport headers is flexible, allowing multiple segments per Reply with arbitrary alignment, each with a unique R_key. Write and Send WRs continue to be built and posted in separate code paths. However, one whole chunk (with one or more RDMA segments apiece) gets exactly one ib_post_send and one work completion. o svc_xprt reference counting is modified, since a chain of rdma_rw_ctx structs generates one completion, no matter how many Write WRs are posted. o The current code builds the transport header as it is construct- ing Write WRs. I've replaced that with marshaling of transport header data items in a separate step. This is because the exact structure of client-provided segments may not align with the components of the server's reply xdr_buf, or the pages in the page list. Thus parts of each client-provided segment may be written at different points in the send path. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
8 lines
311 B
Makefile
8 lines
311 B
Makefile
obj-$(CONFIG_SUNRPC_XPRT_RDMA) += rpcrdma.o
|
|
|
|
rpcrdma-y := transport.o rpc_rdma.o verbs.o \
|
|
fmr_ops.o frwr_ops.o \
|
|
svc_rdma.o svc_rdma_backchannel.o svc_rdma_transport.o \
|
|
svc_rdma_marshal.o svc_rdma_sendto.o svc_rdma_recvfrom.o \
|
|
svc_rdma_rw.o module.o
|
|
rpcrdma-$(CONFIG_SUNRPC_BACKCHANNEL) += backchannel.o
|