Re: [nfsv4] draft-ietf-nfsv4-rpcrdma-bidirection-03 review

Chuck Lever <chuck.lever@oracle.com> Wed, 08 June 2016 20:05 UTC

Return-Path: <chuck.lever@oracle.com>
X-Original-To: nfsv4@ietfa.amsl.com
Delivered-To: nfsv4@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 344AE12D7A2 for <nfsv4@ietfa.amsl.com>; Wed, 8 Jun 2016 13:05:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.646
X-Spam-Level:
X-Spam-Status: No, score=-5.646 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.426, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bFNjPdvVPh7Q for <nfsv4@ietfa.amsl.com>; Wed, 8 Jun 2016 13:05:19 -0700 (PDT)
Received: from aserp1040.oracle.com (aserp1040.oracle.com [141.146.126.69]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AFFB112D5A5 for <nfsv4@ietf.org>; Wed, 8 Jun 2016 13:05:19 -0700 (PDT)
Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u58K5Hsh007014 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 8 Jun 2016 20:05:18 GMT
Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by userv0022.oracle.com (8.14.4/8.13.8) with ESMTP id u58K5HQV004148 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 8 Jun 2016 20:05:17 GMT
Received: from abhmp0017.oracle.com (abhmp0017.oracle.com [141.146.116.23]) by aserv0122.oracle.com (8.13.8/8.13.8) with ESMTP id u58K5EH0018289; Wed, 8 Jun 2016 20:05:15 GMT
Received: from anon-dhcp-171.1015granger.net (/68.46.169.226) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 08 Jun 2016 13:05:14 -0700
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
From: Chuck Lever <chuck.lever@oracle.com>
In-Reply-To: <CADaq8jfB4kOpAv3nKe1APu9ZswF3AcEYJYGvKBTytAix6g6eAw@mail.gmail.com>
Date: Wed, 08 Jun 2016 16:05:13 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <FFFA1057-5B67-45F1-9574-7187F8C7F1CA@oracle.com>
References: <6da90b6b-bb58-d241-0d74-dc421358c97c@oracle.com> <9ECFBBD5-9359-46AB-B1CC-7FCBF06C40A8@oracle.com> <f609eba3-4294-37ae-3bb8-c7df8f648bb0@oracle.com> <0E79D0E4-9D53-4ED4-8D17-2D806C56648F@oracle.com> <567848d1-d854-ef70-8fba-33708e7e0601@oracle.com> <E2B31EDF-74D6-4CC8-8F6C-674C85498B56@oracle.com> <E0C18ECC-7D15-447F-9DA7-654E1EBF6C3B@oracle.com> <CADaq8jcgW316nLwA3LnCAmL7nAY3o6XjeQLCkV-S_Sps9g+LJw@mail.gmail.com> <4E8C421F-1A22-413C-AA2E-833C71AC6F71@oracle.com> <CADaq8jdVjt6x0MNgc7g0HCvQ9tR6yC01AdSPCiqHmEn8CMPscw@mail.gmail.com> <CADaq8jcHk4PzxhGLtsK7mBEuh0J3T54Bn3PFd==X5cdoB9pGSQ@mail.gmail.com> <46B6E3E0-4598-4A54-A091-D590BF084B7F@oracle.com> <CADaq8jeBFLT4QB9=jY0OywbDDon0eUSrafz3nDVxcORNvwpDbg@mail.gmail.com> <CADaq8jc2hEg+sk7ADPoaFKmvCQ_xWjAkP1amWz9PJDHRSnCvHw@mail.gmail.com> <B338F553-B74E-49C2-A638-2691B2A8E86D@oracle.com> <CADaq8jeybG3fx4evUhKDxXkVfpbiVSm1td9mvrN=RwrqqFtiwg@mail.gmail.com> <46F55B8B-5266-4472-BD30-D9FAEF2265AA@oracle.com> <CADaq8jf17P4! 1ft2mnFhSEWi6oM0-D7KUEshdUof4SnQUUSbaWg@mail.gmail.com> <EFC3267A-A89F-4538-9995-2F531D8DC14B@oracle.com> <CADaq8jfB4kOpAv3nKe1APu9ZswF3AcEYJYGvKBTytAix6g6eAw@mail.gmail.com>
To: David Noveck <davenoveck@gmail.com>
X-Mailer: Apple Mail (2.3124)
X-Source-IP: userv0022.oracle.com [156.151.31.74]
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/G_BUtLpl7ALu81oAaiODMHQkloU>
Cc: NFSv4 <nfsv4@ietf.org>
Subject: Re: [nfsv4] draft-ietf-nfsv4-rpcrdma-bidirection-03 review
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/nfsv4/>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Jun 2016 20:05:21 -0000

> On Jun 6, 2016, at 1:10 PM, David Noveck <davenoveck@gmail.com> wrote:
> 
> >> The responsibility for defining the basic structure of bidirectional operation belongs to rpcrdma-bidirection.  
> >> This includes the use of two separate credit pools and the fact each message may contain either a request or a grant applying to the credit pool owned by the message receiver.
> 
> > OK: the receiver has to decide whether each message
> > contains a credit request (the receiver is acting as
> > a responder) or a credit grant (the receiver is
> > acting as a requester).
> 
> Yes but I'd boil this down to the receiver deciding whether the credit field is a request or a grant (and the
> RPC-over-RDMA version telling him how to decide.
> 
> The place where this gets "interesting" is a subcase of the feature you brought up.  If a transmission can
> contain multiple rpc messages, it can be the case the sender would want to send both requests and replies
> and thus want/need to send both a request and a grant.
> 
> I think we want to be careful that, where we specify how the credit field is to be used, we don't foreclose
> passing credits or grants in other fields.    If an XMOPT_GROUP were defined, that allowed a group of
> RPC messages to be sent, the version two sender would make the direction field reflect the majority, but
> I would want it to have the option to have an other-credit field so it could convey a request and a grant in
> the same transmission. 
> 
> > I might refine the text of rpcrdma-bidirection in this
> > area, but otherwise I don't think there's a significant
> > change needed.
> 
> there might be minor text tweaking required.
> 
> 
> > >       • The responsibility for defining how it is to be determined, whether any particular message has a grant or a request in the credit field is the responsibility of the specific RPC-over-RDMA version being used.
> 
> > I might add this suggestion to rpcrdma-bidrection.
> 
> OK, bu so far I hven't seen any obvious place to put it.
> 
> 
> > >       • The responsibility of deciding whether bidirectional operation is OPTIONAL, REQUIRED, or not allowed is the responsibility of the specific RPC-over-RDMA version being used.
> 
> > I'm uncertain how that aligns with rfc5666bis, which
> > does not mention backwards direction operation at all.
> > This implies that it is allowed, and not REQUIRED. Is
> > that enough?
> 
> I think what is in 5666bis is fine.  Section 8.1 introduces it as a
> potential conventional extension and references rpcrdma-bidirection. 
> 
> 
> >>       • The text that now defines how the credit field for specfic Version One messages is interpreted as illustrative of version one only.
> 
> > Is a text change needed for this, or are you simply
> > stating an operating assumption for spec writers?
> 
> I was thinking of rewriting the last paragraph of section 4.1 of rpcrdma-bidirection to read as follows:
> 
> When message direction is not fully determined by context or by an accompanying RPC message with a call direction field, it may not be clear whether the header credit value is a request or grant.  In such cases the definition of the RPC-over-RDMA version used may provide guidance as to how the credit value is to be interpreted. In such cases in which such guidance is not provided or is adequate, the receiver MUST NOT use the header's credit value.
> I didn't see anything else that need to change.


OK, here's how rpcrdma-bidirection Section 4.1 reads now:

> 4.1.  Backward Credits
> 
>    RPC-over-RDMA credits work the same way in the backward direction as
>    they do in the forward direction.  However, forward direction credits
>    and backward direction credits on the same connection are accounted
>    separately.
> 
>    The forward direction credit value retains the same meaning whether
>    or not there are backward direction resources associated with an RPC-
>    over-RDMA transport connection.  This is the number of RPC requests
>    the forward direction responder (the RPC server) is prepared to
>    receive concurrently.
> 
>    The backward direction credit value is the number of RPC requests the
>    backward direction responder (the RPC client) is prepared to receive
>    concurrently.  Observe that the backward direction credit value MAY
>    be different than the forward direction credit value.
> 
>    During bi-directional operation, each receiver has to decide whether
>    an incoming message contains a credit request (the receiver is acting
>    as a responder) or a credit grant (the receiver is acting as a
>    requester) and apply the credit value accordingly.
> 
>    When message direction is not fully determined by context (e.g.,
>    suggested by the definition of the RPC-over-RDMA version that is in
>    use) or by an accompanying RPC message payload with a call direction
>    field, it is not possible for the receiver to tell with certainty
>    whether the header credit value is a request or grant.  In such
>    cases, the receiver MUST NOT use the header's credit value.



--
Chuck Lever