Re: Proposal for simplifying NFS/RDMA client memory registration

2014-03-03 Thread Chuck Lever

On Feb 26, 2014, at 11:44 AM, Chuck Lever chuck.le...@oracle.com wrote:

 Hi-
 
 Shirley Ma and I are reviving work on the NFS/RDMA client code base in the 
 Linux kernel.  So far we’ve built and run functional tests to determine what 
 is working and what is broken.
 
 One complication is the number of memory registration modes supported by the 
 RPC/RDMA transport: there are seven.  These were added over the years to 
 support particular HCAs or as proof-of-concept.  The transport chooses a 
 registration mode at mount time based on what the link HCA supports.
 
 Not all HCAs support all memory registration modes, so our test matrix is 
 quite large.  I’d like to propose removing support for one or more of these 
 memory registration modes in the name of making it easier to change this code 
 and test it without breaking something that we can’t test.
 
 BOUNCEBUFFERS - All HCAs support this mode.  Does not use RDMA READ and 
 WRITE, and the client end copies data into place.  RDMA is offloaded, by data 
 copy is not.  I’m told it was never intended for production use.
 
 REGISTER - Safe but relatively slow.  Uses reg_phys_mr verb which is not 
 supported in mlx4/mlx5, but all other HCAs/providers can use this mode.
 
 MEM_WINDOWS - Uses bind_mr verb.  Safe, but supports only a narrow range of 
 HCAs.
 
 MEM_WINDOWS_ASYNC - Not always safe, and only a narrow range of HCAs is 
 supported.
 
 MTHCA_FMR - Uses alloc_fmr verb.  Safe, reasonably fast, but only a narrow 
 range of older HCAs is supported.
 
 FRMR - Safe, generally fast.  Currently the preferred registration mode, but 
 is not supported with some older HCAs/providers.
 
 ALLPHYSICAL - Usually fast, but not safe as it exposes client memory.  All 
 HCAs support this mode.
 
 
 I propose removing BOUNCEBUFFERS since it is not intended for production use.
 
 I propose removing ALLPHYSICAL and MEM_WINDOWS_ASYNC as they are not 
 generally safe.  RFC 5666 suggests that unsafe memory registration modes be 
 avoided.
 
 I propose removing MEM_WINDOWS as it adds complexity without adding a lot of 
 HCA compatibility.
 
 I propose removing MTHCA_FMR as I’m told it is hard to obtain HCAs we would 
 need for testing this registration mode, and these are all old adapters 
 anyway.
 
 This leaves NFS/RDMA client support for REGISTER and FRMR, which should cover 
 all existing HCAs, and it is easy to test both of these memory registration 
 modes with just one or two well-picked HCAs.
 
 We would contribute these changes to the client code base.  The NFS/RDMA 
 server code could use similar attention, but we are not volunteering to 
 change it at this time.
 
 Thoughts/comments?

Karma score so far:

BOUNCEBUFFERS, REGISTER, MEM_WINDOWS, MEM_WINDOWS_ASYNC - no votes in favor of 
keeping

MTHCA_FMR, FRMR, ALLPHYSICAL - one or more votes in favor of keeping


All HCAs in 3.13 (and rxe) can support either MTHCA_FMR or FRMR or both. 
Wendy’s HCA supports only ALLPHYSICAL.

Does it make sense to deprecate then remove the registration modes in the first 
list?

--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com



--
To unsubscribe from this list: send the line unsubscribe linux-rdma in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Proposal for simplifying NFS/RDMA client memory registration

2014-03-03 Thread Christoph Hellwig
On Mon, Mar 03, 2014 at 12:02:33PM -0500, Chuck Lever wrote:
 All HCAs in 3.13 (and rxe) can support either MTHCA_FMR or FRMR or both. 
 Wendy?s HCA supports only ALLPHYSICAL.

Is Wendy planning to submit her HCA driver ASAP?  If not there's not
reason to keep ALLPHYSICAL either.

 Does it make sense to deprecate then remove the registration modes in the 
 first list?

Yes.

--
To unsubscribe from this list: send the line unsubscribe linux-rdma in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Proposal for simplifying NFS/RDMA client memory registration

2014-03-03 Thread faibish, sorin


Sent from my iPad

 On Mar 3, 2014, at 7:09 PM, Christoph Hellwig h...@infradead.org wrote:
 
 On Mon, Mar 03, 2014 at 12:02:33PM -0500, Chuck Lever wrote:
 All HCAs in 3.13 (and rxe) can support either MTHCA_FMR or FRMR or both. 
 Wendy?s HCA supports only ALLPHYSICAL.
 
 Is Wendy planning to submit her HCA driver ASAP?  If not there's not
 reason to keep ALLPHYSICAL either.
I second Christoph. Legacy is good as long as there are users of Linux with the 
legacy server. I would say that the only reason to keep it is if Linux server 
will support it. Same we apply to Lustre client in kernel.

./Sorin

 
 Does it make sense to deprecate then remove the registration modes in the 
 first list?
 
 Yes.
 
 --
 To unsubscribe from this list: send the line unsubscribe linux-nfs in
 the body of a message to majord...@vger.kernel.org
 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Proposal for simplifying NFS/RDMA client memory registration

2014-03-03 Thread Wendy Cheng
On Mon, Mar 3, 2014 at 11:54 AM, faibish, sorin faibish_so...@emc.com wrote:

  On Mar 3, 2014, at 7:09 PM, Christoph Hellwig h...@infradead.org wrote:
 
  On Mon, Mar 03, 2014 at 12:02:33PM -0500, Chuck Lever wrote:
  All HCAs in 3.13 (and rxe) can support either MTHCA_FMR or FRMR or both. 
  Wendy?s HCA supports only ALLPHYSICAL.
 
  Is Wendy planning to submit her HCA driver ASAP?  If not there's not
  reason to keep ALLPHYSICAL either.
 I second Christoph. Legacy is good as long as there are users of Linux with 
 the legacy server. I would say that the only reason to keep it is if Linux 
 server will support it. Same we apply to Lustre client in kernel.

 ./Sorin

 
  Does it make sense to deprecate then remove the registration modes in the 
  first list?
 
  Yes.
 


After discussing this with my manager, we'll let it go for now ...
will re-submit the full patch set in the future when we finalize the
plan.

Thanks,
Wendy
--
To unsubscribe from this list: send the line unsubscribe linux-rdma in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Proposal for simplifying NFS/RDMA client memory registration

2014-03-02 Thread Chuck Lever

On Mar 1, 2014, at 4:29 PM, Tom Tucker t...@opengridcomputing.com wrote:

 Hi Chuck,
 
 I have a patch for the server side that simplifies the memory registration 
 and fixes a bug where the server ignores the FRMR hardware limits. This bug 
 is actually upstream now.
 
 I have been sitting on it because it's a big patch and will require a lot of 
 testing/review to get it upstream. This is Just an FYI in case there is 
 someone on your team who has the bandwidth to take this work and finish it up.

Why not post what you have, and then we can see what can be done.


 
 Thanks,
 Tom
 
 On 2/28/14 8:59 PM, Chuck Lever wrote:
 Hi Wendy-
 
 On Feb 28, 2014, at 5:26 PM, Wendy Cheng s.wendy.ch...@gmail.com wrote:
 
 On Fri, Feb 28, 2014 at 2:20 PM, Wendy Cheng s.wendy.ch...@gmail.com 
 wrote:
 ni i...On Fri, Feb 28, 2014 at 1:41 PM, Tom Talpey t...@talpey.com wrote:
 On 2/26/2014 8:44 AM, Chuck Lever wrote:
 Hi-
 
 Shirley Ma and I are reviving work on the NFS/RDMA client code base in
 the Linux kernel.  So far we've built and run functional tests to 
 determine
 what is working and what is broken.
 
 [snip]
 
 ALLPHYSICAL - Usually fast, but not safe as it exposes client memory.
 All HCAs support this mode.
 
 Not safe is an understatement. It exposes all of client physical
 memory to the peer, for both read and write. A simple pointer error
 on the server will silently corrupt the client. This mode was
 intended only for testing, and in experimental deployments.
 (sorry, resend .. previous reply bounced back due to gmail html format)
 
 Please keep ALLPHYSICAL for now  - as our embedded system needs it.
 This is just the client side.  Confirming that you still need support for 
 the ALLPHYSICAL memory registration mode in the NFS/RDMA client.
 
 Do you have plans to move to a mode that is less risky?  If not, can we 
 depend on you to perform regular testing with ALLPHYSICAL as we update the 
 client code?  Do you have any bug fixes you’d like to merge upstream?
 
 --
 Chuck Lever
 chuck[dot]lever[at]oracle[dot]com
 
 
 
 --
 To unsubscribe from this list: send the line unsubscribe linux-rdma in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 
 --
 To unsubscribe from this list: send the line unsubscribe linux-nfs in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Chuck Lever
chuck[dot]lever[at]oracle[dot]com




--
To unsubscribe from this list: send the line unsubscribe linux-rdma in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Proposal for simplifying NFS/RDMA client memory registration

2014-03-01 Thread Jeff Layton
On Fri, 28 Feb 2014 21:59:00 -0500
Chuck Lever chuck.le...@oracle.com wrote:

 Hi Wendy-
 
 On Feb 28, 2014, at 5:26 PM, Wendy Cheng s.wendy.ch...@gmail.com wrote:
 
  On Fri, Feb 28, 2014 at 2:20 PM, Wendy Cheng s.wendy.ch...@gmail.com 
  wrote:
  ni i...On Fri, Feb 28, 2014 at 1:41 PM, Tom Talpey t...@talpey.com wrote:
  
  On 2/26/2014 8:44 AM, Chuck Lever wrote:
  
  Hi-
  
  Shirley Ma and I are reviving work on the NFS/RDMA client code base in
  the Linux kernel.  So far we've built and run functional tests to 
  determine
  what is working and what is broken.
  
  [snip]
  
  
  
  ALLPHYSICAL - Usually fast, but not safe as it exposes client memory.
  All HCAs support this mode.
  
  
  Not safe is an understatement. It exposes all of client physical
  memory to the peer, for both read and write. A simple pointer error
  on the server will silently corrupt the client. This mode was
  intended only for testing, and in experimental deployments.
  
  (sorry, resend .. previous reply bounced back due to gmail html format)
  
  Please keep ALLPHYSICAL for now  - as our embedded system needs it.
 
 This is just the client side.  Confirming that you still need support for the 
 ALLPHYSICAL memory registration mode in the NFS/RDMA client.
 
 Do you have plans to move to a mode that is less risky?  If not, can we 
 depend on you to perform regular testing with ALLPHYSICAL as we update the 
 client code?  Do you have any bug fixes you’d like to merge upstream?
 

Also, given that ALLPHYSICAL isn't considered safe, we should at the
very least require some sort of explicit opt-in before allowing it to be
used. Perhaps either a Kconfig option, or maybe a runtime switch like a
module parm?

Wendy, would that be acceptable?
-- 
Jeff Layton jlay...@redhat.com
--
To unsubscribe from this list: send the line unsubscribe linux-rdma in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Proposal for simplifying NFS/RDMA client memory registration

2014-03-01 Thread Chuck Lever

On Mar 1, 2014, at 11:00 AM, Jeff Layton jlay...@redhat.com wrote:

 On Fri, 28 Feb 2014 21:59:00 -0500
 Chuck Lever chuck.le...@oracle.com wrote:
 
 Hi Wendy-
 
 On Feb 28, 2014, at 5:26 PM, Wendy Cheng s.wendy.ch...@gmail.com wrote:
 
 On Fri, Feb 28, 2014 at 2:20 PM, Wendy Cheng s.wendy.ch...@gmail.com 
 wrote:
 ni i...On Fri, Feb 28, 2014 at 1:41 PM, Tom Talpey t...@talpey.com wrote:
 
 On 2/26/2014 8:44 AM, Chuck Lever wrote:
 
 Hi-
 
 Shirley Ma and I are reviving work on the NFS/RDMA client code base in
 the Linux kernel.  So far we've built and run functional tests to 
 determine
 what is working and what is broken.
 
 [snip]
 
 
 
 ALLPHYSICAL - Usually fast, but not safe as it exposes client memory.
 All HCAs support this mode.
 
 
 Not safe is an understatement. It exposes all of client physical
 memory to the peer, for both read and write. A simple pointer error
 on the server will silently corrupt the client. This mode was
 intended only for testing, and in experimental deployments.
 
 (sorry, resend .. previous reply bounced back due to gmail html format)
 
 Please keep ALLPHYSICAL for now  - as our embedded system needs it.
 
 This is just the client side.  Confirming that you still need support for 
 the ALLPHYSICAL memory registration mode in the NFS/RDMA client.
 
 Do you have plans to move to a mode that is less risky?  If not, can we 
 depend on you to perform regular testing with ALLPHYSICAL as we update the 
 client code?  Do you have any bug fixes you’d like to merge upstream?
 
 
 Also, given that ALLPHYSICAL isn't considered safe, we should at the
 very least require some sort of explicit opt-in before allowing it to be
 used. Perhaps either a Kconfig option, or maybe a runtime switch like a
 module parm?

Well, there is already an opt-in: /proc/sys/sunrpc/rdma_memreg_strategy
selects the default registration mode. Currently FRMR is always used
unless the HCA doesn’t support it.

If we need to keep ALLPHYSICAL, the least thing I would want to do is
remove the logic in rpcrdma_ia_open() that switches to ALLPHYSICAL if
the mode selected by rdma_memreg_strategy isn’t supported by the HCA.

--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com



--
To unsubscribe from this list: send the line unsubscribe linux-rdma in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Proposal for simplifying NFS/RDMA client memory registration

2014-03-01 Thread Tom Tucker

Hi Chuck,

I have a patch for the server side that simplifies the memory registration 
and fixes a bug where the server ignores the FRMR hardware limits. This 
bug is actually upstream now.


I have been sitting on it because it's a big patch and will require a lot 
of testing/review to get it upstream. This is Just an FYI in case there is 
someone on your team who has the bandwidth to take this work and finish it up.


Thanks,
Tom

On 2/28/14 8:59 PM, Chuck Lever wrote:

Hi Wendy-

On Feb 28, 2014, at 5:26 PM, Wendy Cheng s.wendy.ch...@gmail.com wrote:


On Fri, Feb 28, 2014 at 2:20 PM, Wendy Cheng s.wendy.ch...@gmail.com wrote:

ni i...On Fri, Feb 28, 2014 at 1:41 PM, Tom Talpey t...@talpey.com wrote:

On 2/26/2014 8:44 AM, Chuck Lever wrote:

Hi-

Shirley Ma and I are reviving work on the NFS/RDMA client code base in
the Linux kernel.  So far we've built and run functional tests to determine
what is working and what is broken.

[snip]



ALLPHYSICAL - Usually fast, but not safe as it exposes client memory.
All HCAs support this mode.


Not safe is an understatement. It exposes all of client physical
memory to the peer, for both read and write. A simple pointer error
on the server will silently corrupt the client. This mode was
intended only for testing, and in experimental deployments.

(sorry, resend .. previous reply bounced back due to gmail html format)

Please keep ALLPHYSICAL for now  - as our embedded system needs it.

This is just the client side.  Confirming that you still need support for the 
ALLPHYSICAL memory registration mode in the NFS/RDMA client.

Do you have plans to move to a mode that is less risky?  If not, can we depend 
on you to perform regular testing with ALLPHYSICAL as we update the client 
code?  Do you have any bug fixes you’d like to merge upstream?

--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com



--
To unsubscribe from this list: send the line unsubscribe linux-rdma in
the body of a message to majord...@vger.kernel.org
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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Proposal for simplifying NFS/RDMA client memory registration

2014-02-28 Thread Tom Talpey

On 2/26/2014 8:44 AM, Chuck Lever wrote:

Hi-

Shirley Ma and I are reviving work on the NFS/RDMA client code base in the 
Linux kernel.  So far we’ve built and run functional tests to determine what is 
working and what is broken.

One complication is the number of memory registration modes supported by the 
RPC/RDMA transport: there are seven.  These were added over the years to 
support particular HCAs or as proof-of-concept.  The transport chooses a 
registration mode at mount time based on what the link HCA supports.

Not all HCAs support all memory registration modes, so our test matrix is quite 
large.  I’d like to propose removing support for one or more of these memory 
registration modes in the name of making it easier to change this code and test 
it without breaking something that we can’t test.

BOUNCEBUFFERS - All HCAs support this mode.  Does not use RDMA READ and WRITE, 
and the client end copies data into place.  RDMA is offloaded, by data copy is 
not.  I’m told it was never intended for production use.

REGISTER - Safe but relatively slow.  Uses reg_phys_mr verb which is not 
supported in mlx4/mlx5, but all other HCAs/providers can use this mode.

MEM_WINDOWS - Uses bind_mr verb.  Safe, but supports only a narrow range of 
HCAs.

MEM_WINDOWS_ASYNC - Not always safe, and only a narrow range of HCAs is 
supported.

MTHCA_FMR - Uses alloc_fmr verb.  Safe, reasonably fast, but only a narrow 
range of older HCAs is supported.


The MTHCA FMR is not completely safe - it protects only on page
boundaries, therefore the neighboring bytes are vulnerable to
silent corruption (reads) and exposure (write).

It is quite correct that they are supported on only a specific
set of legacy Mellanox HCA. You should consider removing the
code that looked for this PCI ID and attempted to alter the
device's wire MTU, to overcome another of its limitations.



FRMR - Safe, generally fast.  Currently the preferred registration mode, but is 
not supported with some older HCAs/providers.


This should be, by far, the preferred mode. Also, if I recall
correctly, the server depends on this mode being available/supported.
However, it may not be supported by Soft iWARP. Physical addressing
is used.



ALLPHYSICAL - Usually fast, but not safe as it exposes client memory.  All HCAs 
support this mode.


Not safe is an understatement. It exposes all of client physical
memory to the peer, for both read and write. A simple pointer error
on the server will silently corrupt the client. This mode was
intended only for testing, and in experimental deployments.


Tom.




I propose removing BOUNCEBUFFERS since it is not intended for production use.

I propose removing ALLPHYSICAL and MEM_WINDOWS_ASYNC as they are not generally 
safe.  RFC 5666 suggests that unsafe memory registration modes be avoided.

I propose removing MEM_WINDOWS as it adds complexity without adding a lot of 
HCA compatibility.

I propose removing MTHCA_FMR as I’m told it is hard to obtain HCAs we would 
need for testing this registration mode, and these are all old adapters anyway.

This leaves NFS/RDMA client support for REGISTER and FRMR, which should cover 
all existing HCAs, and it is easy to test both of these memory registration 
modes with just one or two well-picked HCAs.

We would contribute these changes to the client code base.  The NFS/RDMA server 
code could use similar attention, but we are not volunteering to change it at 
this time.

Thoughts/comments?

--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com



--
To unsubscribe from this list: send the line unsubscribe linux-nfs in
the body of a message to majord...@vger.kernel.org
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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Proposal for simplifying NFS/RDMA client memory registration

2014-02-28 Thread Wendy Cheng
On Fri, Feb 28, 2014 at 2:20 PM, Wendy Cheng s.wendy.ch...@gmail.com wrote:
 ni i...On Fri, Feb 28, 2014 at 1:41 PM, Tom Talpey t...@talpey.com wrote:

 On 2/26/2014 8:44 AM, Chuck Lever wrote:

 Hi-

 Shirley Ma and I are reviving work on the NFS/RDMA client code base in
 the Linux kernel.  So far we've built and run functional tests to determine
 what is working and what is broken.

 [snip]



 ALLPHYSICAL - Usually fast, but not safe as it exposes client memory.
 All HCAs support this mode.


 Not safe is an understatement. It exposes all of client physical
 memory to the peer, for both read and write. A simple pointer error
 on the server will silently corrupt the client. This mode was
 intended only for testing, and in experimental deployments.

(sorry, resend .. previous reply bounced back due to gmail html format)

Please keep ALLPHYSICAL for now  - as our embedded system needs it.

Thanks,
Wendy
--
To unsubscribe from this list: send the line unsubscribe linux-rdma in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Proposal for simplifying NFS/RDMA client memory registration

2014-02-28 Thread Chuck Lever
Hi Wendy-

On Feb 28, 2014, at 5:26 PM, Wendy Cheng s.wendy.ch...@gmail.com wrote:

 On Fri, Feb 28, 2014 at 2:20 PM, Wendy Cheng s.wendy.ch...@gmail.com wrote:
 ni i...On Fri, Feb 28, 2014 at 1:41 PM, Tom Talpey t...@talpey.com wrote:
 
 On 2/26/2014 8:44 AM, Chuck Lever wrote:
 
 Hi-
 
 Shirley Ma and I are reviving work on the NFS/RDMA client code base in
 the Linux kernel.  So far we've built and run functional tests to determine
 what is working and what is broken.
 
 [snip]
 
 
 
 ALLPHYSICAL - Usually fast, but not safe as it exposes client memory.
 All HCAs support this mode.
 
 
 Not safe is an understatement. It exposes all of client physical
 memory to the peer, for both read and write. A simple pointer error
 on the server will silently corrupt the client. This mode was
 intended only for testing, and in experimental deployments.
 
 (sorry, resend .. previous reply bounced back due to gmail html format)
 
 Please keep ALLPHYSICAL for now  - as our embedded system needs it.

This is just the client side.  Confirming that you still need support for the 
ALLPHYSICAL memory registration mode in the NFS/RDMA client.

Do you have plans to move to a mode that is less risky?  If not, can we depend 
on you to perform regular testing with ALLPHYSICAL as we update the client 
code?  Do you have any bug fixes you’d like to merge upstream?

--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com



--
To unsubscribe from this list: send the line unsubscribe linux-rdma in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: Proposal for simplifying NFS/RDMA client memory registration

2014-02-26 Thread faibish, sorin


-Original Message-
From: linux-nfs-ow...@vger.kernel.org [mailto:linux-nfs-ow...@vger.kernel.org] 
On Behalf Of Chuck Lever
Sent: Wednesday, February 26, 2014 11:45 AM
To: linux-rdma@vger.kernel.org; Linux NFS Mailing List
Cc: Shirley Ma
Subject: Proposal for simplifying NFS/RDMA client memory registration

Hi-

Shirley Ma and I are reviving work on the NFS/RDMA client code base in the 
Linux kernel.  So far we've built and run functional tests to determine what is 
working and what is broken.

One complication is the number of memory registration modes supported by the 
RPC/RDMA transport: there are seven.  These were added over the years to 
support particular HCAs or as proof-of-concept.  The transport chooses a 
registration mode at mount time based on what the link HCA supports.

Not all HCAs support all memory registration modes, so our test matrix is quite 
large.  I'd like to propose removing support for one or more of these memory 
registration modes in the name of making it easier to change this code and test 
it without breaking something that we can't test.

BOUNCEBUFFERS - All HCAs support this mode.  Does not use RDMA READ and WRITE, 
and the client end copies data into place.  RDMA is offloaded, by data copy is 
not.  I'm told it was never intended for production use.

REGISTER - Safe but relatively slow.  Uses reg_phys_mr verb which is not 
supported in mlx4/mlx5, but all other HCAs/providers can use this mode.

MEM_WINDOWS - Uses bind_mr verb.  Safe, but supports only a narrow range of 
HCAs.

MEM_WINDOWS_ASYNC - Not always safe, and only a narrow range of HCAs is 
supported.

MTHCA_FMR - Uses alloc_fmr verb.  Safe, reasonably fast, but only a narrow 
range of older HCAs is supported.

FRMR - Safe, generally fast.  Currently the preferred registration mode, but is 
not supported with some older HCAs/providers.

ALLPHYSICAL - Usually fast, but not safe as it exposes client memory.  All HCAs 
support this mode.


I propose removing BOUNCEBUFFERS since it is not intended for production use.

I propose removing ALLPHYSICAL and MEM_WINDOWS_ASYNC as they are not generally 
safe.  RFC 5666 suggests that unsafe memory registration modes be avoided.

I propose removing MEM_WINDOWS as it adds complexity without adding a lot of 
HCA compatibility.

I propose removing MTHCA_FMR as I'm told it is hard to obtain HCAs we would 
need for testing this registration mode, and these are all old adapters anyway.

This leaves NFS/RDMA client support for REGISTER and FRMR, which should cover 
all existing HCAs, and it is easy to test both of these memory registration 
modes with just one or two well-picked HCAs.

We would contribute these changes to the client code base.  The NFS/RDMA server 
code could use similar attention, but we are not volunteering to change it at 
this time.
[sf] We need volunteers for server too as the optimizations on client only may 
not be enough considering that SMB express optimized both sides. Maybe we can 
find a student of Erez to work on this. Thanks

./Sorin 

Thoughts/comments?

--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com



--
To unsubscribe from this list: send the line unsubscribe linux-nfs in the 
body of a message to majord...@vger.kernel.org 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html