Re: [PATCH v1 00/22] convert NFS server to new rdma_rw API

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Bruce-


> On Jan 13, 2017, at 11:42 AM, bfields@xxxxxxxxxxxx wrote:
> 
> Can you summarize the motivation for the change, for someone (like me)
> that doesn't know much about RDMA?  Or does "significant cleanups" cover
> it?

Last year, Sagi and Christoph introduced a new set of APIs to the
RDMA core that enable ULPs like iSER and NFS/RDMA to leave the details
of certain aspects of operation to the core, instead of all the ULPs
having to implement the details themselves. Kind of a code refactoring /
de-duplication.

Then, going forward, fixes and improvements made to the logic behind
this new API will be available to all ULPs that use the new API.

This series converts the server-side RPC-over-RDMA implementation
to use the new API.


> Are there any regressions?  For example, will it still support all the
> same hardware?  Is there any change that will be noticeable to NFS/RDMA
> users?

All the same hardware is supported. The standing policy for ULPs is
that they must work with all in-tree HCA drivers and devices.

The goal of this work is that there is no user-visible change in
functionality or performance.

I know it's a lot to consider, and I'm happy to split up the series
or individual patches to help review.


> --b.
> 
> On Sat, Jan 07, 2017 at 12:15:15PM -0500, Chuck Lever wrote:
>> This series converts the Linux NFS server RPC-over-RDMA
>> implementation to use the new core rdma_rw API and to poll its CQs
>> in workqueue mode.
>> 
>> Previously published work prototyped only the path that sends RPC
>> replies. This series converts both send and receive sides, and
>> includes significant clean ups that result from using the new API.
>> 
>> This series has been successfully tested with NFSv3, 4.0, and 4.1;
>> with clients that use FRWR and FMR; and with sec=sys, krb5, krb5i,
>> and krb5p.
>> 
>> Available in the "nfsd-rdma-rw-api" topic branch of this git repo:
>> 
>> git://git.linux-nfs.org/projects/cel/cel-2.6.git
>> 
>> And for online review:
>> 
>> http://git.linux-nfs.org/?p=cel/cel-2.6.git;a=shortlog;h=refs/heads/nfsd-rdma-rw-api
>> 
>> ---
>> 
>> Chuck Lever (22):
>>      svcrdma: Another sendto chunk list parsing update
>>      svcrdma: Replace RPCRDMA_SQ_DEPTH_MULT
>>      svcrdma: Remove unused sc_dto_q field
>>      svcrdma: Combine list fields in struct svc_rdma_op_ctxt
>>      svcrdma: Poll CQs in "workqueue" mode
>>      svcrdma: Clean up RPC-over-RDMA Reply header encoder
>>      svcrdma: Clean up RPC-over-RDMA Call header decoder
>>      svcrdma: Introduce local rdma_rw API helpers
>>      svcrdma: Use rdma_rw API in RPC reply path
>>      svcrdma: Backchannel sendto clean up
>>      svcrdma: Clean up RDMA_ERROR path
>>      svcrdma: Reduce size of sge array in struct svc_rdma_op_ctxt
>>      svcrdma: Remove old RDMA Write completion handlers
>>      svcrdma: Remove the req_map cache
>>      svcrdma: Clean up RPC-over-RDMA backchannel reply processing
>>      svcrdma: Use generic RDMA R/W API in RPC Call path
>>      svcrdma: Remove unused Read completion handlers
>>      svcrdma: Remove frmr cache
>>      svcrdma: Clean up after converting svc_rdma_recvfrom to rdma_rw API
>>      svcrdma: Clean-up in svc_rdma_post_recv
>>      svcrdma: Clean-up svc_rdma_unmap_dma
>>      svcrdma: Re-order fields in svc_rdma_op_ctxt
>> 
>> 
>> include/linux/sunrpc/rpc_rdma.h            |   12 
>> include/linux/sunrpc/svc_rdma.h            |  147 ++---
>> net/sunrpc/xprtrdma/Makefile               |    2 
>> net/sunrpc/xprtrdma/svc_rdma.c             |    8 
>> net/sunrpc/xprtrdma/svc_rdma_backchannel.c |   73 +--
>> net/sunrpc/xprtrdma/svc_rdma_marshal.c     |  478 +++++++++--------
>> net/sunrpc/xprtrdma/svc_rdma_recvfrom.c    |  518 +++---------------
>> net/sunrpc/xprtrdma/svc_rdma_rw.c          |  731 ++++++++++++++++++++++++++
>> net/sunrpc/xprtrdma/svc_rdma_sendto.c      |  802 +++++++++++-----------------
>> net/sunrpc/xprtrdma/svc_rdma_transport.c   |  506 +++++-------------
>> 10 files changed, 1621 insertions(+), 1656 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@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
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



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux