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-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html