SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    RE: iSCSI: Out Of Sequence due to null sequence with multiple connections.



    Sandeep,
    
    I understand your concern as you view the sequencer as potentially holding
    an inordinate amount of commands.  Flow control should help keep this queue
    lean.  Consider the consequence of a connection failure creating a series of
    holes in the sequence.  The alternative to an immediate rejection of
    commands may be to time-out on each hole in the sequencer.  In this case,
    resending a list of rejected commands is a better solution than an endless
    sequence of timeouts if this queue is really that large.  Data wise, this
    list should represent only a small amount to be resent.  If the CmdSN was
    not session but LUN wide, then there would be less recovery.  I do not see
    this happening often enough for there to be a concern about the number of
    commands rejected.
    
    Doug
    
    
    > Black_David@emc.com wrote:
    > >
    > > Sandeep,
    > >
    > > > Still wading thru related emails but I believe that if a refCmdSN
    > > > is added to the task management PDU (not present currently but
    > > > could be added for task-related management commands), then it
    > > > might fix the above-mentioned flaws and allow for safe execution
    > > > and immediate delivery of the abort task to the target.
    > >
    > > I think this is a functional subset of Doug Otis's suggestion to always
    > > use a CmdSN and add a header flag indicating that the command should
    > > be executed immediately at the target rather than waiting for those with
    > > prior CmdSNs to arrive.  Doug's suggestion also consumes less space
    > > in the header.
    >
    > Yes, i now understand Doug's proposal.  The "PDU sequencer" was
    > new terminology which baffled me some.. :-)
    >
    > His solution does seem like a cleaner approach (no target state)
    >
    > In some ways, it reminds one of the M_FLUSH function used
    > in the STREAMS layer.   If we stand back a bit, we see that the
    > scenario is essentially the same -> Stream module processing is
    > normally asynchronous.   With M_FLUSH, the stream head desires to
    > clean out all the downstream module queues.
    >
    > The only concern with that solution is that it may delete
    > a whole lot of unrelated SCSI I/O tasks as the sequencer cmdSN
    > moves way up to the cmdSN of the task_mgmt command.  "Abort task"
    > as such will not exist in the iSCSI world.   These unrelated
    > commands will now have to be retried by the initiator.
    >
    > Do we have any numbers on how often ABORT_TASK/ABORT_TASK_SET actually
    > occurs in filesystem/SCSI workloads ?
    >
    > regards,
    > -Sandeep
    >
    
    


Home

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