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
next 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: linkBe 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.