All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC 0/3] Proposal for exposing rdma_rw MR factor
@ 2017-08-01 21:06 Chuck Lever
       [not found] ` <20170801205334.15781.18761.stgit-Hs+gFlyCn65vLzlybtyyYzGyq/o6K9yX@public.gmane.org>
  0 siblings, 1 reply; 11+ messages in thread
From: Chuck Lever @ 2017-08-01 21:06 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA

Since I converted NFSD to use the new rdma_rw API, I've been
struggling with how NFSD determines the size of its send CQ, and how
it provisions its send queue limit (ie, when it waits for more send
queue entries to become available).

The problem arises because rdma_rw hides the exact number of send
WQEs it has provisioned. It determines this number based on the MR
registration mode (FRWR for iWARP devices, local DMA rkey for
others), but the mode itself is no longer exposed to ULPs.

Thus when FRWR is in use, rdma_rw adds more WQEs, but NFSD is no
longer aware of this, does not provision a larger CQ, and does not
raise its send queue accounting limit. That means the extra WQEs are
never really used.

At LSF this year, Christoph and Sagi proposed a simple API that
expose information about how many CQ entries are needed so that ULPs
can provision their CQs more accurately.

The first patch here is a pre-requisite for the third. The second
patch adds the new API. The third patch changes NFSD to use the new
API to provision its CQ and send queue accounting accurately.

This approach was tested using the (fixed) force_mr core module
parameter.


---

Chuck Lever (3):
      svcrdma: Limit RQ depth
      rdma core: Add rdma_rw_mr_payload()
      svcrdma: Estimate Send Queue depth properly


 drivers/infiniband/core/rw.c             |   24 ++++++++++++++++++++
 include/rdma/rw.h                        |    2 ++
 net/sunrpc/xprtrdma/svc_rdma_transport.c |   36 +++++++++++++++++++++---------
 3 files changed, 51 insertions(+), 11 deletions(-)

--
Chuck Lever
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2017-08-18 16:53 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-01 21:06 [PATCH RFC 0/3] Proposal for exposing rdma_rw MR factor Chuck Lever
     [not found] ` <20170801205334.15781.18761.stgit-Hs+gFlyCn65vLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2017-08-01 21:06   ` [PATCH RFC 1/3] svcrdma: Limit RQ depth Chuck Lever
2017-08-01 21:07   ` [PATCH RFC 2/3] rdma core: Add rdma_rw_mr_payload() Chuck Lever
     [not found]     ` <20170801210707.15781.36464.stgit-Hs+gFlyCn65vLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2017-08-18 16:51       ` Doug Ledford
2017-08-01 21:07   ` [PATCH RFC 3/3] svcrdma: Estimate Send Queue depth properly Chuck Lever
2017-08-02  7:20   ` [PATCH RFC 0/3] Proposal for exposing rdma_rw MR factor Leon Romanovsky
     [not found]     ` <20170802072043.GZ13672-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-08-02 18:06       ` Chuck Lever
2017-08-08 18:28       ` Chuck Lever
     [not found]         ` <D8576C0A-6588-49D1-A2F9-AD39FB2E5FCE-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2017-08-16 15:50           ` Chuck Lever
     [not found]             ` <6EAEEE15-819E-4CE2-8C67-997A244919FB-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2017-08-18 16:52               ` Doug Ledford
     [not found]                 ` <1503075123.2598.27.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-08-18 16:53                   ` Chuck Lever

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.