]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
xprtrdma: More Send completion batching
authorChuck Lever <chuck.lever@oracle.com>
Wed, 24 Apr 2019 13:39:59 +0000 (09:39 -0400)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Thu, 25 Apr 2019 19:20:58 +0000 (15:20 -0400)
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: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
net/sunrpc/xprtrdma/verbs.c
net/sunrpc/xprtrdma/xprt_rdma.h

index 1ad25190f2d11aeaae7eced8dc2d55db2be092d7..1ed761a12f863df79db449cafba2a49c5ca70837 100644 (file)
@@ -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;
index 8afb5fc1de05c49a913525bc5747ce20a442f885..f8563937c8c66479b3327c2307996391fbc761aa 100644 (file)
@@ -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
  *