linux-hardened/net/sunrpc/xprtrdma
Chuck Lever cc886c9ff1 svcrdma: Improve allocation of struct svc_rdma_op_ctxt
When the maximum payload size of NFS READ and WRITE was increased
by commit cc9a903d91 ("svcrdma: Change maximum server payload back
to RPCSVC_MAXPAYLOAD"), the size of struct svc_rdma_op_ctxt
increased to over 6KB (on x86_64). That makes allocating one of
these from a kmem_cache more likely to fail in situations when
system memory is exhausted.

Since I'm about to add a caller where this allocation must always
work _and_ it cannot sleep, pre-allocate ctxts for each connection.

Another motivation for this change is that NFSv4.x servers are
required by specification not to drop NFS requests. Pre-allocating
memory resources reduces the likelihood of a drop.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Acked-by: Bruce Fields <bfields@fieldses.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2016-01-19 15:30:48 -05:00
..
backchannel.c NFS: Enable client side NFSv4.1 backchannel to use other transports 2015-11-02 16:29:13 -05:00
fmr_ops.c xprtrdma: Replace global lkey with lkey local to PD 2015-09-25 10:46:51 -04:00
frwr_ops.c xprtrdma: Avoid calling ib_query_device 2015-12-22 14:39:00 -05:00
Makefile xprtrdma: Pre-allocate backward rpc_rqst and send/receive buffers 2015-11-02 13:45:15 -05:00
module.c rpcrdma: Merge svcrdma and xprtrdma modules into one 2015-06-04 16:56:02 -04:00
physical_ops.c xprtrdma: Replace global lkey with lkey local to PD 2015-09-25 10:46:51 -04:00
rpc_rdma.c xprtrdma: Handle incoming backward direction RPC calls 2015-11-02 13:45:15 -05:00
svc_rdma.c svcrdma: Add backward direction service for RPC/RDMA transport 2015-11-02 13:45:15 -05:00
svc_rdma_marshal.c svcrdma: Keep rpcrdma_msg fields in network byte-order 2015-06-04 16:55:59 -04:00
svc_rdma_recvfrom.c Initial 4.4 merge window submission 2015-11-07 13:33:07 -08:00
svc_rdma_sendto.c IB: split struct ib_send_wr 2015-10-08 11:09:10 +01:00
svc_rdma_transport.c svcrdma: Improve allocation of struct svc_rdma_op_ctxt 2016-01-19 15:30:48 -05:00
transport.c NFS: Enable client side NFSv4.1 backchannel to use other transports 2015-11-02 16:29:13 -05:00
verbs.c xprtrdma: Avoid calling ib_query_device 2015-12-22 14:39:00 -05:00
xprt_rdma.h xprtrdma: Avoid calling ib_query_device 2015-12-22 14:39:00 -05:00