Return-Path: Received: from mail-it0-f68.google.com ([209.85.214.68]:33182 "EHLO mail-it0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755275AbdBGQ6J (ORCPT ); Tue, 7 Feb 2017 11:58:09 -0500 Subject: [PATCH v3 0/7] Server-side NFS/RDMA changes for v4.11 From: Chuck Lever To: bfields@fieldses.org Cc: linux-rdma@vger.kernel.org, linux-nfs@vger.kernel.org Date: Tue, 07 Feb 2017 11:58:06 -0500 Message-ID: <20170207165131.14422.47088.stgit@klimt.1015granger.net> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Sender: linux-nfs-owner@vger.kernel.org List-ID: 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