SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    RE: iSCSI & Linked Commands



    Folks,
    
    There are no implementation problems with linked commands other than
    the fact that nobody has really found a good use for them outside
    a few specialized environments.  It is for that reason that they
    are relatively rarely called upon, but strongly defended by their
    few users.
    
    This thread has created a significant amount of unclarity.
    
    First:
    
    	A task includes all commands executed in a single
    	link.  It has the same Exchange identifier for all 
    	steps in executing a command.  That takes care of the
    	concerns expressed by Santosh.
    
    Second:
    
    	A set of linked commands is executed in order, by
    	definition, but their ordering with respect to other
    	tasks from the same or other initiators is not defined
    	except through the ordinary command ordering stuff.
    	The task ordering applies to the entire task, although
    	this is not as explicitly defined in SAM as would be
    	desirable.  This eliminates them as being tremendously
    	useful in ordered execution.
    
    Third:
    
    	I am not aware of any usage of commands using relative
    	addressing.  They are denigrated in all profiles.  They
    	are a historic anomaly dating back to when SCSI was thought
    	of as a total replacement for the IBM OEM channel.
    	Relative addressing is defined for disk devices only,
    	not sequential devices.  Sequential devices use the 
    	more traditional space, skip, and locate commands.
    	This eliminates relative addressing for linked commands as
    	being useful to sequential devices.
    
    Fourth:
    
    	Stale PDUs are a fact of life in any stream of data that
    	is not acknowledged and sequenced on a PDU by PDU basis.
    	Both Fibre Channel and iSCSI have to deal with that.
    	Fibre Channel has a function called "recovery qualifier"
    	that automatically discards stale PDUs.  It has an additional
    	function called R_A_TOV which guarantees that stale PDUs
    	will not appear later than a certain time.  With those two
    	mechanisms, stale PDUs become a non-problem.  In FCP,
    	an additional mechanism is provided to handle the stale
    	PDUs created by Abort Task actions.
    
    	One way or another, iSCSI will have to deal with the same
    	problem.
    
    Notes of possible interest:
    
    Command linking is an anachronism.  It has been used by a few
    devices that think of themselves as having IBM OEM channel-like
    characteristics, where a list of commands is the normal I/O
    execution unit.  It was also used by Sun Microsystems in early
    SCSI implementations that used software selection algorithms that
    were so high in overhead that command linking provided improved
    performance.  Aside from those cases that have been listed here
    (AS400 and some Unisys systems), command linking is not in modern
    use as far as I know.  Command queuing and buffering have provided
    performance improvements that are so notable that command linking
    has fallen aside.
    


Home

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