SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    RE: aborting an out of sequence cmdSN



    Eddy,
    
    > Does iSCSI have a way to abort the commands that are in the target but not
    > yet in the SCSI Target Layer?
    
    No, it doesn't.  Part of the problem is that just considering
    iSCSI info, the Initiator can't tell whether such commands
    are in the Target vs. still in-flight.  TCP ACK info may help,
    but if TCP hasn't ACKed, the Initiator still doesn't know.
    
    This is the issue that Doug's been posting about, advocating
    that iSCSI always reject all commands prior to the task abort
    on the assumption that the initiator can reissue them - given
    the lack of support this has received, I'm going to take this
    opportunity to state that I believe WG rough consensus exists
    for NOT pursuing this "reject all prior commands" approach.
    This is the last chance for anyone else to express support for
    this reject-based approach.
    
    If we were to address the original issue, I think some sort
    of new mechanism is needed at the iSCSI level, as the
    attempts to use a side effect of SCSI task aborts don't
    seem to be getting much of anywhere (e.g., a previous
    attempt at this involved having iSCSI automatically send
    task management commands multiple times).  A SWAG at what
    such a mechanism might look like is some sort of iSCSI
    "Cancel" that names the CmdSN(s) to be cancelled and sent
    in the same PDU as the SCSI Task Abort or Task Set Abort
    that is supposed to abort them.  Canceling would apply
    both to commands waiting for CmdSN in iSCSI as well as
    those not yet received by the target (i.e., the target
    has to have some notion of "pending cancel" for commands
    it hasn't received yet.  The cancelled commands
    probably have to return some sort of iSCSI service error
    rather than SCSI sense data.  Something like this looks
    like it can be made to work as desired (issue TASK 
    ABORT with the corresponding Cancel for immediate delivery,
    and if SCSI declares the TASK ABORT to have succeeded,
    then that command will not subsequently execute), but it'll
    add complexity.  Is that worth the benefit of being able
    to reach out and definitively strangle an errant command?
    
    --David
    
    > -----Original Message-----
    > From:	Eddy Quicksall [SMTP:Eddy@quicksall.com]
    > Sent:	Friday, April 13, 2001 6:40 PM
    > To:	Ips@Ece. Cmu. Edu (E-mail)
    > Subject:	aborting an out of sequence cmdSN
    > 
    > 
    > If a command is received out of sequence, it is not passed to the SCSI
    > Target Layer. So, it must be queued waiting for the prior command. Now, if
    > the prior command never comes the operating system may attempt to abort
    > the
    > lost command by sending an abort to the driver.
    > 
    > The abort can't be turned into an ABORT TASK TMF because the target iSCSI
    > has not acknowledged that it has received the original command yet. And,
    > even if the ABORT TASK was sent, it can't get to the SCSI Target Layer
    > because its cmdSN will be higher than the most recent command.
    > 
    > The iSCSI initiator drive could just jerk it out of its queue (knowing
    > that
    > it hasn't been acknowledged yet) but then the iSCSI target may still
    > execute
    > it when the missing PDU's arrive.
    > 
    > Does iSCSI have a way to abort the commands that are in the target but not
    > yet in the SCSI Target Layer?
    > 
    > Eddy
    > 
    


Home

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