SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    Re: Avoiding deadlock in iSCSI



    
    
    Well - if the targets enters ACA - that state can be reset only explicitely
    and then you resend the commands in order.
    
    Julo
    
    csapuntz@cisco.com on 12/09/2000 08:32:44
    
    Please respond to csapuntz@cisco.com
    
    To:   Jim McGrath <Jim.McGrath@quantum.com>
    cc:   ips@ece.cmu.edu, csapuntz@cisco.com (bcc: Julian Satran/Haifa/IBM)
    Subject:  Re: Avoiding deadlock in iSCSI
    
    
    
    
    
    > Note that SCSI targets, when faced with getting a command queue full, do
    not
    > stop reading from the interconnect.  If more commands are received then
    they
    > respond with a QUEUE FULL status.  If data is received then they receive
    > that data without regard for the status of the command queue (as long as
    it
    > is data for an already queued command).  This eliminates the potential
    for
    > deadlock between command and data queues.
    
    Jim,
    
    I believe there is problem with the current SCSI behavior. Consider the
    following scenario for a host with a pathological queue of 1
    
    
         1) Initiator sends command 1 (ORDERED attribute)
         2) Initiator sends command 2 (ORDERED attribute)
         3) Initiator sends command 3 (ORDERED attributge)
         4) Target reads command 1
         5) Target reads command 2
         6) Target returns queue full for command 2
         7) Command 1 completes
         8) Target reads command 3
         9) Target executes command 3
    
    We have just violated the ordering constraints of the application by
    doing command 3 before command 2.
    
    > Potentially you can have a situation where multiple commands already at
    the
    > target have only part of their data transmitted, with the remainder still
    at
    > the initiator(s), and then run out of buffer space for data.  If the
    target
    > uses a credit model to pace the reception of data, it can also make sure
    > this never happens.  Unsolicited data, even for commands already queued,
    can
    > end up creating this deadlock - which is why unsolicited data systems
    either
    > have to have a tight limit on the resources it can use (e.g. low login BB
    > credit in Fibre Channel terms) or some sort of clean (i.e. not IO
    > terminating) rejection mechanism from target to initiator (like in USB).
    
    Unsolicited data is NOT a problem with the current iSCSI spec. We allow
    the target to always drop data and request data transfers
    with an RTT.
    
    -Costa
    
    
    
    


Home

Last updated: Tue Sep 04 01:07:21 2001
6315 messages in chronological order