Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c209e49c authored by Chuck Lever's avatar Chuck Lever Committed by Anna Schumaker
Browse files

xprtrdma: More Send completion batching



Instead of using a fixed number, allow the amount of Send completion
batching to vary based on the client's maximum credit limit.

- A larger default gives a small boost to IOPS throughput

- Reducing it based on max_requests gives a safe result when the
  max credit limit is cranked down (eg. when the device has a small
  max_qp_wr).

Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
parent dbcc53a5
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -521,9 +521,7 @@ rpcrdma_ep_create(struct rpcrdma_ep *ep, struct rpcrdma_ia *ia,
		ep->rep_attr.cap.max_send_sge,
		ep->rep_attr.cap.max_recv_sge);

	/* set trigger for requesting send completion */
	ep->rep_send_batch = min_t(unsigned int, RPCRDMA_MAX_SEND_BATCH,
				   cdata->max_requests >> 2);
	ep->rep_send_batch = cdata->max_requests >> 3;
	ep->rep_send_count = ep->rep_send_batch;
	init_waitqueue_head(&ep->rep_connect_wait);
	ep->rep_receive_count = 0;
+0 −10
Original line number Diff line number Diff line
@@ -232,16 +232,6 @@ struct rpcrdma_sendctx {
	struct ib_sge		sc_sges[];
};

/* Limit the number of SGEs that can be unmapped during one
 * Send completion. This caps the amount of work a single
 * completion can do before returning to the provider.
 *
 * Setting this to zero disables Send completion batching.
 */
enum {
	RPCRDMA_MAX_SEND_BATCH = 7,
};

/*
 * struct rpcrdma_mr - external memory region metadata
 *