linux-stable/net/sunrpc/xprtrdma
Chuck Lever 2fa8f88d88 xprtrdma: Use new CQ API for RPC-over-RDMA client send CQs
Calling ib_poll_cq() to sort through WCs during a completion is a
common pattern amongst RDMA consumers. Since commit 14d3a3b249
("IB: add a proper completion queue abstraction"), WC sorting can
be handled by the IB core.

By converting to this new API, xprtrdma is made a better neighbor to
other RDMA consumers, as it allows the core to schedule the delivery
of completions more fairly amongst all active consumers.

Because each ib_cqe carries a pointer to a completion method, the
core can now post its own operations on a consumer's QP, and handle
the completions itself, without changes to the consumer.

Send completions were previously handled entirely in the completion
upcall handler (ie, deferring to a process context is unneeded).
Thus IB_POLL_SOFTIRQ is a direct replacement for the current
xprtrdma send code path.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Devesh Sharma <devesh.sharma@broadcom.com>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2016-03-14 14:56:08 -04:00
..
backchannel.c xprtrdma: rpcrdma_bc_receive_call() should init rq_private_buf.len 2016-02-17 10:23:52 -05:00
fmr_ops.c xprtrdma: Use an anonymous union in struct rpcrdma_mw 2016-03-14 14:56:06 -04:00
frwr_ops.c xprtrdma: Use new CQ API for RPC-over-RDMA client send CQs 2016-03-14 14:56:08 -04:00
Makefile svcrdma: Add class for RDMA backwards direction transport 2016-01-19 15:30:48 -05:00
module.c rpcrdma: Merge svcrdma and xprtrdma modules into one 2015-06-04 16:56:02 -04:00
physical_ops.c xprtrdma: Clean up physical_op_map() 2016-03-14 14:55:47 -04:00
rpc_rdma.c xprtrdma: Serialize credit accounting again 2016-03-14 14:56:01 -04:00
svc_rdma.c svcrdma: Define maximum number of backchannel requests 2016-01-19 15:30:48 -05:00
svc_rdma_backchannel.c svc_rdma: use local_dma_lkey 2016-01-19 15:30:48 -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 svc_rdma: use local_dma_lkey 2016-01-19 15:30:48 -05:00
svc_rdma_sendto.c svc_rdma: use local_dma_lkey 2016-01-19 15:30:48 -05:00
svc_rdma_transport.c svc_rdma: use local_dma_lkey 2016-01-19 15:30:48 -05:00
transport.c Initial roundup of 4.5 merge window patches 2016-01-23 18:45:06 -08:00
verbs.c xprtrdma: Use new CQ API for RPC-over-RDMA client send CQs 2016-03-14 14:56:08 -04:00
xprt_rdma.h xprtrdma: Use new CQ API for RPC-over-RDMA client send CQs 2016-03-14 14:56:08 -04:00