linux_dsm_epyc7002/net/sunrpc
Chuck Lever 5ab8142839 xprtrdma: Chunk list encoders no longer share one rl_segments array
Currently, all three chunk list encoders each use a portion of the
one rl_segments array in rpcrdma_req. This is because the MWs for
each chunk list were preserved in rl_segments so that ro_unmap could
find and invalidate them after the RPC was complete.

However, now that MWs are placed on a per-req linked list as they
are registered, there is no longer any information in rpcrdma_mr_seg
that is shared between ro_map and ro_unmap_{sync,safe}, and thus
nothing in rl_segments needs to be preserved after
rpcrdma_marshal_req is complete.

Thus the rl_segments array can be used now just for the needs of
each rpcrdma_convert_iovs call. Once each chunk list is encoded, the
next chunk list encoder is free to re-use all of rl_segments.

This means all three chunk lists in one RPC request can now each
encode a full size data payload with no increase in the size of
rl_segments.

This is a key requirement for Kerberos support, since both the Call
and Reply for a single RPC transaction are conveyed via Long
messages (RDMA Read/Write). Both can be large.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Tested-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2016-07-11 15:50:43 -04:00
..
auth_gss NFS client updates for Linux 4.7 2016-05-26 10:33:33 -07:00
xprtrdma xprtrdma: Chunk list encoders no longer share one rl_segments array 2016-07-11 15:50:43 -04:00
addr.c replace strict_strto calls 2014-07-12 18:45:49 -04:00
auth_generic.c sunrpc: add rpc_lookup_generic_cred 2016-05-09 09:05:40 -04:00
auth_null.c nfsd: Lower NFSv4.1 callback message size limit 2016-03-01 13:06:35 -08:00
auth_unix.c sunrpc: plumb gfp_t parm into crcreate operation 2016-05-09 09:05:40 -04:00
auth.c SUNRPC: Ensure get_rpccred() and put_rpccred() can take NULL arguments 2016-05-17 15:48:06 -04:00
backchannel_rqst.c SUNRPC: Fix callback channel 2015-12-07 13:04:59 -08:00
cache.c mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
clnt.c rpc: share one xps between all backchannels 2016-06-15 10:32:25 -04:00
debugfs.c SUNRPC: Address kbuild warning in net/sunrpc/debugfs.c 2015-06-11 14:01:06 -04:00
Kconfig rpcrdma: Merge svcrdma and xprtrdma modules into one 2015-06-04 16:56:02 -04:00
Makefile SUNRPC: Add a structure to track multiple transports 2016-02-05 18:48:54 -05:00
netns.h Merge branch 'for-3.14' of git://linux-nfs.org/~bfields/linux 2014-01-30 10:18:43 -08:00
rpc_pipe.c mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
rpcb_clnt.c SUNRPC: Use the multipath iterator to assign a transport to each task 2016-02-05 18:48:55 -05:00
sched.c SUNRPC: Allow caller to specify the transport to use 2016-02-05 18:48:55 -05:00
socklib.c sunrpc: do not pull udp headers on receive 2016-04-11 15:31:33 -04:00
stats.c sunrpc: add rpc_count_iostats_idx 2015-02-03 11:06:38 -08:00
sunrpc_syms.c sunrpc: make debugfs file creation failure non-fatal 2015-04-23 14:42:27 -04:00
sunrpc.h SUNRPC: track whether a request is coming from a loop-back interface. 2014-05-22 15:59:18 -04:00
svc_xprt.c rpc: share one xps between all backchannels 2016-06-15 10:32:25 -04:00
svc.c SUNRPC: Fix callback channel 2015-12-07 13:04:59 -08:00
svcauth_unix.c svcrpc: move some initialization to common code 2015-11-24 10:39:16 -07:00
svcauth.c svcrpc: move some initialization to common code 2015-11-24 10:39:16 -07:00
svcsock.c sock: tigthen lockdep checks for sock_owned_by_user 2016-04-13 22:37:20 -04:00
sysctl.c Sunrpc: Supports hexadecimal number for sysctl files of sunrpc debug 2015-11-03 15:56:49 -05:00
timer.c net: cleanup unsigned to unsigned int 2012-04-15 12:44:40 -04:00
xdr.c SUNRPC: init xdr_stream for zero iov_len, page_len 2016-05-09 09:05:40 -04:00
xprt.c SUNRPC: Use the multipath iterator to assign a transport to each task 2016-02-05 18:48:55 -05:00
xprtmultipath.c SUNRPC: Add a structure to track multiple transports 2016-02-05 18:48:54 -05:00
xprtsock.c rpc: share one xps between all backchannels 2016-06-15 10:32:25 -04:00