All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chuck Lever <chuck.lever-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
To: bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: [PATCH v3 0/7] Server-side NFS/RDMA changes for v4.11
Date: Tue, 07 Feb 2017 11:58:06 -0500	[thread overview]
Message-ID: <20170207165131.14422.47088.stgit@klimt.1015granger.net> (raw)

Hi Bruce-

These are largely clean-ups, except for the last patch. Switching
completion polling from soft IRQ to a worker thread has a few
benefits:

- svcrdma's completion handlers invoke svc_xprt_put(). We discovered
recently svc_xprt_put() is supposed to be called only in a process
context. This will become more important when NFS/RDMA becomes
capable of multi-path operation.

- eventually we'd like to allocate pages for RDMA Read in the
completion handler, and not defer RDMA Read to svc_rdma_recvfrom.
GFP_KERNEL memory allocation can sleep, which is not allowed in soft
IRQ context.

- several places where BH's are disabled can be converted to simple
spin_locks.


Available in the "nfsd-rdma-for-4.11" 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.11


Changes since v2:
- Rebased on v4.10-rc7
- Addressed Christoph's review comments


Changes since v1:
- Rebased on v4.10-rc6


---

Chuck Lever (7):
      svcrdma: Another sendto chunk list parsing update
      svcrdma: Clean up RPC-over-RDMA Reply header encoder
      svcrdma: Clean up RPC-over-RDMA Call header decoder
      svcrdma: Clean up backchannel send header encoding
      svcrdma: Remove unused sc_dto_q field
      svcrdma: Combine list fields in struct svc_rdma_op_ctxt
      svcrdma: Poll CQs in "workqueue" mode


 include/linux/sunrpc/rpc_rdma.h            |    9 +
 include/linux/sunrpc/svc_rdma.h            |   13 -
 net/sunrpc/xprtrdma/svc_rdma_backchannel.c |   17 +-
 net/sunrpc/xprtrdma/svc_rdma_marshal.c     |  299 ++++++++++------------------
 net/sunrpc/xprtrdma/svc_rdma_recvfrom.c    |   20 +-
 net/sunrpc/xprtrdma/svc_rdma_sendto.c      |   22 +-
 net/sunrpc/xprtrdma/svc_rdma_transport.c   |   61 +++---
 7 files changed, 180 insertions(+), 261 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

WARNING: multiple messages have this Message-ID (diff)
From: Chuck Lever <chuck.lever@oracle.com>
To: bfields@fieldses.org
Cc: linux-rdma@vger.kernel.org, linux-nfs@vger.kernel.org
Subject: [PATCH v3 0/7] Server-side NFS/RDMA changes for v4.11
Date: Tue, 07 Feb 2017 11:58:06 -0500	[thread overview]
Message-ID: <20170207165131.14422.47088.stgit@klimt.1015granger.net> (raw)

Hi Bruce-

These are largely clean-ups, except for the last patch. Switching
completion polling from soft IRQ to a worker thread has a few
benefits:

- svcrdma's completion handlers invoke svc_xprt_put(). We discovered
recently svc_xprt_put() is supposed to be called only in a process
context. This will become more important when NFS/RDMA becomes
capable of multi-path operation.

- eventually we'd like to allocate pages for RDMA Read in the
completion handler, and not defer RDMA Read to svc_rdma_recvfrom.
GFP_KERNEL memory allocation can sleep, which is not allowed in soft
IRQ context.

- several places where BH's are disabled can be converted to simple
spin_locks.


Available in the "nfsd-rdma-for-4.11" 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.11


Changes since v2:
- Rebased on v4.10-rc7
- Addressed Christoph's review comments


Changes since v1:
- Rebased on v4.10-rc6


---

Chuck Lever (7):
      svcrdma: Another sendto chunk list parsing update
      svcrdma: Clean up RPC-over-RDMA Reply header encoder
      svcrdma: Clean up RPC-over-RDMA Call header decoder
      svcrdma: Clean up backchannel send header encoding
      svcrdma: Remove unused sc_dto_q field
      svcrdma: Combine list fields in struct svc_rdma_op_ctxt
      svcrdma: Poll CQs in "workqueue" mode


 include/linux/sunrpc/rpc_rdma.h            |    9 +
 include/linux/sunrpc/svc_rdma.h            |   13 -
 net/sunrpc/xprtrdma/svc_rdma_backchannel.c |   17 +-
 net/sunrpc/xprtrdma/svc_rdma_marshal.c     |  299 ++++++++++------------------
 net/sunrpc/xprtrdma/svc_rdma_recvfrom.c    |   20 +-
 net/sunrpc/xprtrdma/svc_rdma_sendto.c      |   22 +-
 net/sunrpc/xprtrdma/svc_rdma_transport.c   |   61 +++---
 7 files changed, 180 insertions(+), 261 deletions(-)

--
Chuck Lever

             reply	other threads:[~2017-02-07 16:58 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-07 16:58 Chuck Lever [this message]
2017-02-07 16:58 ` [PATCH v3 0/7] Server-side NFS/RDMA changes for v4.11 Chuck Lever
     [not found] ` <20170207165131.14422.47088.stgit-Hs+gFlyCn65vLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2017-02-07 16:58   ` [PATCH v3 1/7] svcrdma: Another sendto chunk list parsing update Chuck Lever
2017-02-07 16:58     ` Chuck Lever
     [not found]     ` <20170207165815.14422.77348.stgit-Hs+gFlyCn65vLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2017-02-07 19:42       ` Christoph Hellwig
2017-02-07 19:42         ` Christoph Hellwig
     [not found]         ` <20170207194252.GA28088-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2017-02-07 20:30           ` Chuck Lever
2017-02-07 20:30             ` Chuck Lever
     [not found]             ` <C65F013C-84A2-456D-A0C0-04444D3C4D58-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2017-02-08 16:57               ` J. Bruce Fields
2017-02-08 16:57                 ` J. Bruce Fields
2017-02-07 16:58   ` [PATCH v3 2/7] svcrdma: Clean up RPC-over-RDMA Reply header encoder Chuck Lever
2017-02-07 16:58     ` Chuck Lever
     [not found]     ` <20170207165823.14422.78711.stgit-Hs+gFlyCn65vLzlybtyyYzGyq/o6K9yX@public.gmane.org>
2017-02-07 17:20       ` Christoph Hellwig
2017-02-07 17:20         ` Christoph Hellwig
2017-02-07 16:58   ` [PATCH v3 3/7] svcrdma: Clean up RPC-over-RDMA Call header decoder Chuck Lever
2017-02-07 16:58     ` Chuck Lever
2017-02-07 16:58   ` [PATCH v3 4/7] svcrdma: Clean up backchannel send header encoding Chuck Lever
2017-02-07 16:58     ` Chuck Lever
2017-02-07 16:58   ` [PATCH v3 5/7] svcrdma: Remove unused sc_dto_q field Chuck Lever
2017-02-07 16:58     ` Chuck Lever
2017-02-07 16:58   ` [PATCH v3 6/7] svcrdma: Combine list fields in struct svc_rdma_op_ctxt Chuck Lever
2017-02-07 16:58     ` Chuck Lever
2017-02-07 16:59   ` [PATCH v3 7/7] svcrdma: Poll CQs in "workqueue" mode Chuck Lever
2017-02-07 16:59     ` Chuck Lever

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170207165131.14422.47088.stgit@klimt.1015granger.net \
    --to=chuck.lever-qhclzuegtsvqt0dzr+alfa@public.gmane.org \
    --cc=bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org \
    --cc=linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.