mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-22 12:21:00 +02:00
xprtrdma: Reduce the doorbell rate (Receive)
Post RECV WRs in batches to reduce the hardware doorbell rate per transport. This helps the RPC-over-RDMA client scale better in number of transports. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
committed by
Anna Schumaker
parent
d4550bbee6
commit
e340c2d6ef
@@ -1480,6 +1480,8 @@ rpcrdma_post_recvs(struct rpcrdma_xprt *r_xprt, bool temp)
|
||||
if (ep->rep_receive_count > needed)
|
||||
goto out;
|
||||
needed -= ep->rep_receive_count;
|
||||
if (!temp)
|
||||
needed += RPCRDMA_MAX_RECV_BATCH;
|
||||
|
||||
count = 0;
|
||||
wr = NULL;
|
||||
|
@@ -205,6 +205,16 @@ struct rpcrdma_rep {
|
||||
struct ib_recv_wr rr_recv_wr;
|
||||
};
|
||||
|
||||
/* To reduce the rate at which a transport invokes ib_post_recv
|
||||
* (and thus the hardware doorbell rate), xprtrdma posts Receive
|
||||
* WRs in batches.
|
||||
*
|
||||
* Setting this to zero disables Receive post batching.
|
||||
*/
|
||||
enum {
|
||||
RPCRDMA_MAX_RECV_BATCH = 7,
|
||||
};
|
||||
|
||||
/* struct rpcrdma_sendctx - DMA mapped SGEs to unmap after Send completes
|
||||
*/
|
||||
struct rpcrdma_req;
|
||||
|
Reference in New Issue
Block a user