summaryrefslogtreecommitdiffstats
path: root/net/sunrpc/Kconfig
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2017-04-09 19:06:16 +0200
committerJ. Bruce Fields <bfields@redhat.com>2017-04-25 23:25:55 +0200
commitf13193f50b64e2e0c87706b838d6b9895626a892 (patch)
tree189018c10910c8ffbb253829936dcc7ba7eee233 /net/sunrpc/Kconfig
parentsvcrdma: Clean up svc_rdma_get_inv_rkey() (diff)
downloadlinux-f13193f50b64e2e0c87706b838d6b9895626a892.tar.xz
linux-f13193f50b64e2e0c87706b838d6b9895626a892.zip
svcrdma: Introduce local rdma_rw API helpers
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>
Diffstat (limited to 'net/sunrpc/Kconfig')
-rw-r--r--net/sunrpc/Kconfig1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/sunrpc/Kconfig b/net/sunrpc/Kconfig
index 04ce2c0b660e..ac09ca803296 100644
--- a/net/sunrpc/Kconfig
+++ b/net/sunrpc/Kconfig
@@ -52,6 +52,7 @@ config SUNRPC_XPRT_RDMA
tristate "RPC-over-RDMA transport"
depends on SUNRPC && INFINIBAND && INFINIBAND_ADDR_TRANS
default SUNRPC && INFINIBAND
+ select SG_POOL
help
This option allows the NFS client and server to use RDMA
transports (InfiniBand, iWARP, or RoCE).