linux/net/sunrpc/xprtrdma
Chuck Lever 7c8d9e7c88 xprtrdma: Move Receive posting to Receive handler
Receive completion and Reply handling are done by a BOUND
workqueue, meaning they run on only one CPU.

Posting receives is currently done in the send_request path, which
on large systems is typically done on a different CPU than the one
handling Receive completions. This results in movement of
Receive-related cachelines between the sending and receiving CPUs.

More importantly, it means that currently Receives are posted while
the transport's write lock is held, which is unnecessary and costly.

Finally, allocation of Receive buffers is performed on-demand in
the Receive completion handler. This helps guarantee that they are
allocated on the same NUMA node as the CPU that handles Receive
completions.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2018-05-07 09:20:04 -04:00
..
backchannel.c xprtrdma: Move Receive posting to Receive handler 2018-05-07 09:20:04 -04:00
fmr_ops.c xprtrdma: Fix max_send_wr computation 2018-05-07 09:20:03 -04:00
frwr_ops.c xprtrdma: Fix max_send_wr computation 2018-05-07 09:20:03 -04:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
module.c xprtrdma: Add proper SPDX tags for NetApp-contributed source 2018-05-07 09:20:03 -04:00
rpc_rdma.c xprtrdma: Move Receive posting to Receive handler 2018-05-07 09:20:04 -04:00
svc_rdma_backchannel.c SUNRPC: Add a ->free_slot transport callout 2018-05-07 09:20:03 -04:00
svc_rdma_recvfrom.c svcrdma: Clean up rdma_build_arg_xdr 2018-03-20 17:32:13 -04:00
svc_rdma_rw.c svcrdma: Fix Read chunk round-up 2018-02-08 13:40:17 -05:00
svc_rdma_sendto.c svcrdma: Post Receives in the Receive completion handler 2018-01-18 11:52:51 -05:00
svc_rdma_transport.c sunrpc: Save remote presentation address in svc_xprt for trace events 2018-04-03 15:08:11 -04:00
svc_rdma.c svcrdma: Consult max_qp_init_rd_atom when accepting connections 2018-03-20 17:32:13 -04:00
transport.c xprtrdma: Move Receive posting to Receive handler 2018-05-07 09:20:04 -04:00
verbs.c xprtrdma: Move Receive posting to Receive handler 2018-05-07 09:20:04 -04:00
xprt_rdma.h xprtrdma: Move Receive posting to Receive handler 2018-05-07 09:20:04 -04:00