Subject: RE: iscsi : iscsi parameter default values

From: "John Hufferd" <[email-masked]>
Date: Fri, 28 Sep 2001 11:09:04 -0700

Robert,
We have had this debate before, and I guess the sides are still polarized.
However, a number of folks believe that immediate is easier to handle then
R2T (since all the information they need is with the PDU), and the
conservative option.  The main discussion has been since they also want to
have  R2T they did not want to have two code paths. However, when folks
have looked at the effort to support immediate data, they have found it to
be trivial.

The payback of NOT having multiple round trips to get the data is an
important feature, and when you think about all the error recovery items we
have been discussing, it is clear that immediate data makes every thing
easier.

The important performance improvements are so important to iSCSI (in my
mind) that if the worse the Target has to do if it can not handle immediate
data, is to send the Text Key of "ImmediateData=no", I do not think this is
a problem.  We need to have this performance feature thought about as a
normal property of iSCSI, so that every one that talks about the advantages
of iSCSI can include this, with out a bunch of qualifying statements.
Having this as the default is one way to keep this thought at the front of
everyone's mind.

.
.
.
John L. Hufferd
Senior Technical Staff Member (STSM)
IBM/SSG San Jose Ca
Main Office (408) 256-0403, Tie: 276-0403,  eFax: (408) 904-4688
Home Office (408) 997-6136
Internet address: [email-masked]

Robert Snively <[email-masked]> on 09/28/2001 08:25:45 AM

To:   John Hufferd/San Jose/IBM@IBMUS, Julian Satran/Haifa/IBM@IBMIL
cc:   [email-masked]
Subject:  RE: iscsi : iscsi parameter default values

I vote no as the default value on ImmediateData.

A default value of yes on ImmediateData requires implementation
of the most complex and demanding mode of operation as the
default.  SCSI has traditionally made its default behavior the
simplest and most encompassing, setting more sophisticated
behavior by subsequent agreement.  While it may be your earnest
desire to encourage the implementation of this function, it
is not appropriate to demand that as the default behavior
of all devices.  In particular, there is no special benefit
to providing ImmediateData in low-cost local sub-lans.

If you want to encourage it in a profile, fine, but demanding
it as the default in the core standard is not appropriate.

Note that the behavior of SCSI is traditionally managed
entirely by the target.  As such, there has never before now
been a requirement for the target to, as a default, accept
any PDU except a command or task management function
that was not explicitly solicited.  That is one of the mechanisms
that assists SCSI in achieving a low-overhead zero copy
capability while operating with a large number of initiators
and with deep command queues.

Bob Snively                        e-mail:    [email-masked]
Brocade Communications Systems     phone:  408 487 8135
1745 Technology Drive
San Jose, CA 95110

> -----Original Message-----
> From: John Hufferd [mailto:[email-masked]]
> Sent: Friday, September 28, 2001 1:33 AM
> To: Julian Satran
> Cc: [email-masked]
> Subject: RE: iscsi : iscsi parameter default values
>
>
>
> I also agree with this.  It should be yes.
>
> .
> .
> .
> John L. Hufferd
> Senior Technical Staff Member (STSM)
> IBM/SSG San Jose Ca
> Main Office (408) 256-0403, Tie: 276-0403,  eFax: (408) 904-4688
> Home Office (408) 997-6136
> Internet address: [email-masked]
>
>
> Julian Satran/Haifa/IBM@[email-masked] on 09/27/2001 09:50:21 AM
>
> Sent by:  [email-masked]
>
>
> To:   [email-masked]
> cc:
> Subject:  RE: iscsi : iscsi parameter default values
>
>
>
>
> The one that I have trouble living with is ImmediateData.
> This is important
> for low-end desktops and hardly matters for large boxes.
> As such I would suggest it stays as yes.
>
> Julo
>
>
>
>                     "Eddy
>                     Quicksall"            To:     "'Santosh Rao'"
> <[email-masked]>,
>                     <EQuicksall@med        <[email-masked]>
>                     iaone.net>            cc:
>                     Sent by:              Subject:     RE:
> iscsi : iscsi
> parameter default values
>                     [email-masked]
>                     mu.edu
>
>
>                     27-09-01 17:22
>                     Please respond
>                     to "Eddy
>                     Quicksall"
>
>
>
>
>
> I like your defaults below.
>
> But, section 5 says:
>
>  The initial Login request MUST include the InitiatorName and
>  SessionType key=value pairs.
>
> Since SessionType is REQUIRED, naming a default would imply a
> possible typo
> in the spec.
>
> Eddy
>
> -----Original Message-----
> From: Santosh Rao [mailto:[email-masked]]
> Sent: Wednesday, September 26, 2001 10:29 PM
> To: [email-masked]
> Subject: iscsi : iscsi parameter default values
>
>
> All,
>
> With the issue of mode page vs. login keys having [almost] drawn to a
> close, I would like to
> raise the below issues again, on the subject of default
> values for login
> keys and other iscsi
> parameters :
>
>
>    * In keeping with traditional use of scsi mode pages, iscsi should
> not specify any default
>      settings for any mode pages that continue to exist for iscsi.
> "Default values" for mode
>      pages are target specific and should not be bound to the protocol
> draft.
>
>    * MORE IMPORTANTLY, I read the default for EMDP as being set to 1
> :-<  This implies that
>      targets must be always prepared to deal with out of
> order data and
> initiators must be
>      prepared to deal with out of order data, unless the initiator
> performs a mode select to
>      disable it. [which defeats all the previous advantages
> gained thru
> mandating use of login
>      keys for other negotiations.]. A default, if it were to exist,
> should be 0. (in-order, by
>      default).
>
>    * Conservative specification of defaults for login keys along the
> following lines :
>                             MaxConnections = 1
>                             FMarker = "no"
>                             InitialR2T = "yes"
>                             BidiInitialR2T = "yes"
>                             ImmediateData = "no"
>                             DataPDULength = 16
>                             MaxOutstandingR2T = 1
>                             DataPDUInOrder = "yes"
>                             ErrorRecoveryLevel = 0
>                             SessionType = "normal"
>
>    * Should the iscsi protocol require a "Lun Control Mode Page"? IOW,
> is an EnableCRN bit
>      required at the transport layer ? If the device server capability
> is to be negotiated , I
>      suggest this bit be moved to a SCSI ULP Mode Page such as the
> "Control Mode Page", through a
>      T10 change as a part of the SCSI changes being driven by iscsi.
>
> Comments ?
>
> Thanks,
> Santosh
>
>
> Santosh Rao wrote:
>
> > There are the separate issues of :
> >
> >    * iscsi's specification of defaults for its mode pages
> which is not
> in line with mode page
> >      usage. This impacts the target's ability to enforce
> values other
> than the protocol
> >      specified default, if the initiator were to not use mode
> sense/select.
> >
> >    * default settings for login keys.
> >
> >    * Is there a need for the "LUN Control Mode Page" and whether
> "Enable CRN" should be in a
> >      transport specific mode page ?
> >
> > which need to be driven to closure as well.
> >
> > Regards,
> > Santosh
>
>
>
>
>
>
>
>
>
>
>

---

From: Santosh Rao <[email-masked]>
Date: Fri, 28 Sep 2001 12:03:40 -0700

John & Julian,

I agree with you that ImmediateData is a powerful performance
optimization and initiators would like to utilize this feature as much
as possible.

However, the decision on what the default setting of ImmediateData
should be depends on 2 factors, that are aside from initiator's
enthusiam to use this feature :

1) 
It is the most common feature set supported on most targets that should
be considered while deciding this default. IOW, are most targets able to
support immediate data ? Are they in a position to guarantee data
buffers to initiators up-front, not knowing how many initiators would be
concurrently logged in and how much concurrent I/O load they would be
receiving from the logged-in initiators ? 

2)
The decision of the default is also partly influenced by the outcome of
a seperate mail thread I've initiated with the subject "iscsi : target
originated negotiation". Julian, can you please clarify in the wake of
comments from Eddy Quicksall & Rod Harrison on this issue ? I see this
as an area of interop concern since different folks are interpreting the
spec differently.

Of particular interest from that thread to this discussion, is the case
where most targets do not support ImmediateData [due to the factors
mentioned in (1) above] and most initiators are attempting to use
ImmediateData [due to the performance boosts it provides], but, are
using the default of "yes" to negotiate this feature.

In this case, the target would be compelled to originate the 
ImmediateData="no" key in order to break the default. Now, if initiators
(the responder to the negotiation, in this case) are required to respond
to this key originated by the target, then, this is going to cause extra
round-trips in the login process for the sole purpose of both sides
agreeing that ImmediateData is not to be used.

It would help to have clarification on how the target originated
negotiation culminates, since that is a factor in deciding this default.

Thanks,
Santosh

-- 
##################################
Santosh Rao
Software Design Engineer,
HP-UX iSCSI Driver Team,
Hewlett Packard, Cupertino.
email : [email-masked]
Phone : 408-447-3751
##################################

---

From: "Somesh Gupta" <[email-masked]>
Date: Fri, 28 Sep 2001 15:03:03 -0700

John makes a good point about the power of immediate
data, and it being a significant differentiator and
advantage over FC for short reads/writes.

This is one aspect of the protocol I think most people
would agree is beneficial. The disagreement is more
along the lines of whether Target should be made to
change their current APIs.

There are other defaults (such as number of connections
per session) on which we probably have much bigger
disagreements about how useful the base feature is.

My question is about how we want to set the defaults.
Should we be conservative as Santosh suggests, or
base it on desired behavior (as John suggests).

Once we decide that, we could talk about the other
defaults.

Somesh
> From: [email-masked] [mailto:[email-masked]]On Behalf Of
> John Hufferd
> Sent: Friday, September 28, 2001 11:09 AM
> To: Robert Snively
> Cc: [email-masked]