SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    RE: iSCSI: ordered command delivery at the target



    Caution:
    
    Device Server is a reserved keyword in SCSI.
    
    It is the mechanism which interprets a SCSI command,
    allocates data buffers, requests and performs the
    data transfer, and sends appropriate completion 
    information.
    
    Those folks who are explaining that CmdSN is only
    used to capture the order of delivery of commands with 
    respect to other commands are correct.  The actual 
    interpretation of the command, choice
    of execution order, data request order, and a stack
    of other things are at the whim of the Device Server,
    regulated only by those ordering attributes specifically
    requested by the originator of the request, the Application
    Client.  Such actions are usually heavily overlapped for
    different tasks and are likely to be performed out of
    order.
    
    That is why the CmdSN is not used to identify those
    other actions.  Instead, the ITT is used to identify
    the components of a task.
    
    References:  SAM-2, iSCSI, SPC-2.
    
    Bob
    
    > I'm talking about Data-Out PDU's. CmdSN is NOT advanced
    > for Data-Out PDU's, only _copied_ from the original task/command.
    > 
    > A task CANNOT be delivered to the device server
    > without all data being available at the target,
    > being the case that there could be a huge
    > network (Ethernet) latency. Once all data has
    > arrived, then the task is delivered to the
    > device server (LL SCSI) and CmdSN becomes irrelevant.
    > 
    > Furthermore, CmdSN is NOT advanced on sending
    > Data-Out pdu's -- it is just copied there
    > from the original task/command.
    > 
    > The whole point of this is making
    > inserting into the ``incoming'' priority
    > queue ordered.
    > 
    > When the task is moved into a ``pending for more data'' queue,
    > this would naturally make the Data-out PDUs immediate
    > PDUs, as they should be. When Data-Outs arrive at the
    > target, CmdSN has advanced by at least k*** since the task has been
    > just _received_, and any ``older'' Data-Out PDUs (carrying 
    > the same CmdSN)
    > will go to the front of the ``incoming'' queue and be seen 
    > immediately.
    > 
    > *** If k = 0, then the task is still in the ``incoming'' queue
    > and the Data-Out is sorted right after it -- same effect.
    > 
    > Furthermore, the target will NOT allow CmdSN wrapping
    > for an outstanding task (one for which data is being delivered, I->T,
    > in order to be sent to the device server (SCSI), _only_ after which
    > CmdSN becomes irrelevant, but this means that all data was
    > delivered....).
    > 
    > Do you see it?
    > 
    > -- 
    > Luben
    > P.S. CmdSN wrapping MUST not depend on the choice of
    > maximum data segment. The suggestion I posted preserves
    > this reservation.
    > 
    


Home

Last updated: Sat Jun 08 11:18:42 2002
10608 messages in chronological order