SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    RE: sector alignment for DataOut PDUs?


    • To: <digital_aryan@yahoo.com>
    • Subject: RE: sector alignment for DataOut PDUs?
    • From: "Martin, Nick" <Nick.Martin@compaq.com>
    • Date: Thu, 28 Feb 2002 18:51:08 -0600
    • Cc: <ips@ece.cmu.edu>
    • content-class: urn:content-classes:message
    • Content-Transfer-Encoding: 8bit
    • Content-Type: text/plain;charset="US-ASCII"
    • Sender: owner-ips@ece.cmu.edu
    • Thread-Index: AcHAK09/mke2EKLYRqucV0ewLmLiKgAg9dvg
    • Thread-Topic: sector alignment for DataOut PDUs?

    Aryan,
    
    In reply to your question "But what about those implementations which
    would like to change the size after few transfers? Should they look/wait
    for something in the spec/draft or try their own implementation?"
    
    If you control both ends of the wire, you can add vendor specific X-
    type of parameters to do what ever you want, but if you want to
    interoperate with everyone, you need to raise your voice in support of
    adding something like DataPDUAlignment to the spec.  Until it is
    included, you can not prevent unaligned data transfer sizes.  (If you
    have no desire to prevent such transfers, this parameter will not help
    you.)
    
    If you are for example a tape drive and you want to change the value on
    the fly, then this parameter would need to be supported in text mode
    negotiation during Full Feature Phase.  There are additional
    implications if it can change with commands in flight.  I did not
    explicitly state whether this was or was not permitted in my proposal.
    I have not noticed any other parameters which explicitly can be changed
    during FPP, although early on, I think that was one important reason to
    have Text PDUs.
    
    Also note that the scope of effect is a single value for the session
    which includes the target and all of its LUs.  There did not seem to be
    precedent for anything but Session or Connection scope.  It would
    perhaps more logically have LU scope (no pun intended).
    
    For a disk target, a single value is probably sufficient.  All sectors
    on all LUs are (almost certainly) the same size.  For a multi LU tape
    library, although each drive may be using a different (fixed or
    variable) block size, there is perhaps still some value in specifying a
    power of two PDU alignment to simplify buffer management.
    
    If a target sets this value to its data buffer memory management
    granularity, this could allow simplification or efficiency within the
    target.  The granularity of target data buffer memory management is not
    likely to change dynamically.  Efficiency of memory management in the
    target is a main benefit.  Being to schedule device writes as each data
    PDU arrives is another.  This is possible when no device block will span
    PDUs.
    
    Thanks,
    Nick
    > -----Original Message-----
    > From: Ajit Aryan [mailto:digital_aryan@yahoo.com]
    > Sent: Thursday, February 28, 2002 1:42 AM
    > To: Martin, Nick
    > Subject: Re: sector alignment for DataOut PDUs?
    > 
    > 
    > Nick,
    > That looks fine.
    > But what about those implementations which would
    > like to change the size after few transfers?
    > Should they look/wait for something in the spec/draft
    > or try their own implementation?
    > 
    > Aryan
    > 
    > Martin, Nick wrote:
    > 
    > >Paul,
    > >
    > >As Rod Harrison points out, MaxRecvPDULength is not negotiated, it is
    > >"declared" and is likely to be different for Initiator and Target.  I
    > >had missed the implication of this change which occurred at draft 09.
    > >
    > >I can now appreciate your earlier proposal.  
    > >
    > >To be fair to all targets, we should allow targets with 
    > arbitrary sized
    > >sectors/blocks to request the same kind of boundary 
    > alignment.  Today we
    > >already have a need to support 512, 1K, 2K, and 4K sectors 
    > for disk, and
    > >anything from 512 up to at least 64K blocks for tape (including
    > >non-powers of 2 like 10K).  [Ouch, I just realized that the 
    > tape block
    > >size can be changed mid-session, the most likely time being after a
    > >media change.  The tape folks may not be able to use of this 
    > in the same
    > >way, but let's not prevent them from trying.]  Further we do 
    > not really
    > >want iSCSI initiators (or their drivers) to have to guess or 
    > issue SCSI
    > >commands to learn the sector size.  The size needs to be specified by
    > >the target during operational parameter negotiation if it is 
    > requesting
    > >sector/block aligned PDU payloads.  
    > >
    > >I actually do not think unaligned payloads are likely, but there is
    > >nothing to prevent them.  We may simplify some target designs by
    > >eliminating the requirement to support them.
    > >
    > >Certainly, we want to eliminate loopholes which allow compliant but
    > >non-interoperable implementations.
    > >
    > >Please consider whether the following proposal meets all of your
    > >requirements.
    > >
    > >Proposed addition to chapter 12 to enable requiring sector 
    > aligned PDU
    > >payloads:
    > >
    > >"
    > >DataPDUAlignment
    > >
    > >Use: LO
    > >Senders: Target and Initiator
    > >Scope: SW
    > >
    > >DataPDUAlignment=<number-512-to-(2**24-1)>
    > >
    > >The default is 0.
    > >
    > >The initiator and target negotiate the alignment boundary on 
    > which data
    > >transfers may be continued to a subsequent PDU.
    > >
    > >The value 0 means no boundary alignment limitation is imposed on data
    > >carrying PDUs.
    > >
    > >The minimum of two non-zero values is selected.  If one 
    > value is zero,
    > >then the other value is selected.
    > >
    > >This is intended primarily for a target to force an initiator to send
    > >PDU data buffers whose boundaries match physical media 
    > boundaries such
    > >as disk sector size.
    > >
    > >When DataPDUAlignment is non-zero, for any PDU other than 
    > the last in a
    > >sequence, the PDU data segment length (DataSegmentLength) is 
    > required to
    > >be an integer multiple of DataPDUAlignment less than or equal to
    > >MaxRecvPDULength.
    > >"
    > >
    > >Thanks,
    > >Nick
    > >
    > >>-----Original Message-----
    > >>From: Paul Koning [mailto:ni1d@arrl.net]
    > >>Sent: Wednesday, February 27, 2002 12:57 PM
    > >>To: Martin, Nick
    > >>Cc: ips@ece.cmu.edu
    > >>Subject: RE: sector alignment for DataOut PDUs?
    > >>
    > >>
    > >>>>>>>"Nick" == Martin, Nick <Nick.Martin@COMPAQ.com> writes:
    > >>>>>>>
    > >> Nick> Paul, For all data carrying PDUs except the last in 
    > a sequence,
    > >> Nick> the sender is expected to send maximum sized PDU 
    > allowed.  When
    > >> Nick> the negotiated maximum is a multiple of 512, this effect is
    > >> Nick> what you request.
    > >>
    > >> Nick> I thought this was a requirement, but I did not find 
    > it as such
    > >> Nick> in draft 10. ...
    > >>
    > >> Nick> IMHO, it makes more sense to include stronger wording
    > >> Nick> encouraging maximum negotiated length transfers 
    > rather than to
    > >> Nick> add another parameter requiring PDU breaks on different
    > >> Nick> boundaries.
    > >>
    > >>That sounds like a fine suggestion, if it gives the target enough
    > >>power to achieve the alignment I'm looking for.  Strengthening the
    > >>text you quoted is a start, but other places would have to be
    > >>strengthened as well -- for example the rules on responding 
    > to an R2T.
    > >>
    > >> Nick> If such initiator behavior may not be supported by 
    > all targets,
    > >> Nick> then the initiators SHOULD NOT do it.
    > >>
    > >>That's not sufficient.  You need "MUST NOT".  The reason: if you say
    > >>"should not" then you can build a conforming initiator that cannot
    > >>interoperate with a conforming target.  All correctly 
    > written protocol
    > >>specs have the property that conformance implies interoperability.
    > >>(Unfortunately, few specs pass this test... :-( )  So a 
    > target can be
    > >>allowed to rely on full size PDUs only if initiators are 
    > required (not
    > >>merely encouraged) to send full size PDUs.
    > >>
    > >>       paul
    > >>
    > 
    > 
    


Home

Last updated: Fri Mar 01 12:18:05 2002
8967 messages in chronological order