All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/13] Server-side NFS/RDMA changes proposed for v4.12
@ 2017-03-27 13:47 ` Chuck Lever
  0 siblings, 0 replies; 40+ messages in thread
From: Chuck Lever @ 2017-03-27 13:47 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA, linux-nfs-u79uwXL29TY76Z2rM5mHXA

This series overhauls the "reply send" side of the RPC-over-RDMA
transport to use the new rdma_rw API. No significant performance
changes were noticed with this overhaul. Benefits include:

<> Better code modularity, less code duplication with other ULPs

<> Ability for svcrdma to use any registration mode for RDMA Writes

<> Correctly handle RPCs that have both a Write and a Reply chunk

<> Correctly handle Write chunk overrun


Available in the "nfsd-rdma-for-4.12" topic branch of this git repo:

git://git.linux-nfs.org/projects/cel/cel-2.6.git


Or for browsing:

http://git.linux-nfs.org/?p=cel/cel-2.6.git;a=log;h=refs/heads/nfsd-rdma-for-4.12


Changes since v1:
- Rebased on v4.11-rc4
- Dropped clean up of svc_rdma_post_recv
- Postponed addition of code related to recvfrom
- Made svc_rdma_{get,put}_rw_ctxt behave symmetrically
- Converted scatterlist to sg_table
- Moved transport header construction into svc_rdma_sendto.c

This last one was the result of discussion with Sagi and Christoph
at LSF. Christoph wants to simplify the organization of this code
into fewer source files, and Sagi wants the rdma_rw code separated
from the code that builds the reply's transport header.

The remaining parts of the overhaul are in this topic branch:

http://git.linux-nfs.org/?p=cel/cel-2.6.git;a=log;h=refs/heads/nfsd-rdma-rw-api

There are three significant pieces of work to do in nfsd-rdma-rw-api:

1. A new rdma_rw function needs to be introduced so that ULPs can
size their CQ, and perform SQ accounting, properly.

2. Similar separation of rdma_rw-related code and transport header
mangling needs to be done.

3. Organize this code path so that it might someday be invoked
directly by the upper layer, to better handle NFS WRITE.


---

Chuck Lever (13):
      svcrdma: Move send_wr to svc_rdma_op_ctxt
      svcrdma: Add svc_rdma_map_reply_hdr()
      svcrdma: Eliminate RPCRDMA_SQ_DEPTH_MULT
      svcrdma: Add helper to save pages under I/O
      svcrdma: Introduce local rdma_rw API helpers
      svcrdma: Use rdma_rw API in RPC reply path
      svcrdma: Clean up RDMA_ERROR path
      svcrdma: Report Write/Reply chunk overruns
      svcrdma: Clean up RPC-over-RDMA backchannel reply processing
      svcrdma: Reduce size of sge array in struct svc_rdma_op_ctxt
      svcrdma: Remove unused RDMA Write completion handler
      svcrdma: Remove the req_map cache
      svcrdma: Clean out old XDR encoders


 include/linux/sunrpc/rpc_rdma.h            |    3 
 include/linux/sunrpc/svc_rdma.h            |   74 +-
 net/sunrpc/xprtrdma/Makefile               |    2 
 net/sunrpc/xprtrdma/svc_rdma.c             |    8 
 net/sunrpc/xprtrdma/svc_rdma_backchannel.c |   72 +-
 net/sunrpc/xprtrdma/svc_rdma_marshal.c     |   89 ---
 net/sunrpc/xprtrdma/svc_rdma_recvfrom.c    |   80 ++
 net/sunrpc/xprtrdma/svc_rdma_rw.c          |  463 +++++++++++++
 net/sunrpc/xprtrdma/svc_rdma_sendto.c      |  969 ++++++++++++++--------------
 net/sunrpc/xprtrdma/svc_rdma_transport.c   |  110 ---
 10 files changed, 1073 insertions(+), 797 deletions(-)
 create mode 100644 net/sunrpc/xprtrdma/svc_rdma_rw.c

--
Chuck Lever
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" 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] 40+ messages in thread

end of thread, other threads:[~2017-03-30 15:30 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-27 13:47 [PATCH v2 00/13] Server-side NFS/RDMA changes proposed for v4.12 Chuck Lever
2017-03-27 13:47 ` Chuck Lever
     [not found] ` <20170327132329.5585.98465.stgit-Hs+gFlyCn65vLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2017-03-27 13:48   ` [PATCH v2 01/13] svcrdma: Move send_wr to svc_rdma_op_ctxt Chuck Lever
2017-03-27 13:48     ` Chuck Lever
     [not found]     ` <20170327134802.5585.70150.stgit-Hs+gFlyCn65vLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2017-03-30 12:06       ` Christoph Hellwig
2017-03-30 12:06         ` Christoph Hellwig
2017-03-27 13:48   ` [PATCH v2 02/13] svcrdma: Add svc_rdma_map_reply_hdr() Chuck Lever
2017-03-27 13:48     ` Chuck Lever
     [not found]     ` <20170327134811.5585.69059.stgit-Hs+gFlyCn65vLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2017-03-30 12:07       ` Christoph Hellwig
2017-03-30 12:07         ` Christoph Hellwig
2017-03-27 13:48   ` [PATCH v2 03/13] svcrdma: Eliminate RPCRDMA_SQ_DEPTH_MULT Chuck Lever
2017-03-27 13:48     ` Chuck Lever
     [not found]     ` <20170327134819.5585.90071.stgit-Hs+gFlyCn65vLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2017-03-30 12:07       ` Christoph Hellwig
2017-03-30 12:07         ` Christoph Hellwig
2017-03-27 13:48   ` [PATCH v2 04/13] svcrdma: Add helper to save pages under I/O Chuck Lever
2017-03-27 13:48     ` Chuck Lever
     [not found]     ` <20170327134827.5585.57220.stgit-Hs+gFlyCn65vLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2017-03-30 12:08       ` Christoph Hellwig
2017-03-30 12:08         ` Christoph Hellwig
2017-03-27 13:48   ` [PATCH v2 05/13] svcrdma: Introduce local rdma_rw API helpers Chuck Lever
2017-03-27 13:48     ` Chuck Lever
     [not found]     ` <20170327134835.5585.76603.stgit-Hs+gFlyCn65vLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2017-03-30 12:30       ` Christoph Hellwig
2017-03-30 12:30         ` Christoph Hellwig
     [not found]         ` <20170330123014.GA32364-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2017-03-30 15:29           ` Chuck Lever
2017-03-30 15:29             ` Chuck Lever
2017-03-27 13:48   ` [PATCH v2 06/13] svcrdma: Use rdma_rw API in RPC reply path Chuck Lever
2017-03-27 13:48     ` Chuck Lever
2017-03-27 13:48   ` [PATCH v2 07/13] svcrdma: Clean up RDMA_ERROR path Chuck Lever
2017-03-27 13:48     ` Chuck Lever
2017-03-27 13:48   ` [PATCH v2 08/13] svcrdma: Report Write/Reply chunk overruns Chuck Lever
2017-03-27 13:48     ` Chuck Lever
2017-03-27 13:49   ` [PATCH v2 09/13] svcrdma: Clean up RPC-over-RDMA backchannel reply processing Chuck Lever
2017-03-27 13:49     ` Chuck Lever
2017-03-27 13:49   ` [PATCH v2 10/13] svcrdma: Reduce size of sge array in struct svc_rdma_op_ctxt Chuck Lever
2017-03-27 13:49     ` Chuck Lever
2017-03-27 13:49   ` [PATCH v2 11/13] svcrdma: Remove unused RDMA Write completion handler Chuck Lever
2017-03-27 13:49     ` Chuck Lever
2017-03-27 13:49   ` [PATCH v2 12/13] svcrdma: Remove the req_map cache Chuck Lever
2017-03-27 13:49     ` Chuck Lever
2017-03-27 13:49   ` [PATCH v2 13/13] svcrdma: Clean out old XDR encoders Chuck Lever
2017-03-27 13:49     ` 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.