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



    Santosh,
    
    Linked commands typically employ a feature that allows relative addressing
    for sequential devices.  Link bits are still present within the CDB even for
    fibre channel.  As only one link command is ever seen on the network at any
    point in time, identify the most recent command related to a task and then
    use this information to associate the Abort Task command possibly issued
    when the ULP times out.  This assumes that Abort Task would be the command
    used in this event and that the backup application is able to recover from
    such.
    
    For your scheme to work, log all command's connection allegiance, examine
    all CDBs to determine their nature, and identify the related task based on
    the content of a management command.  You are suggesting that the connection
    will be flushed by your technique, but if not, tear down the connection?
    Without any acknowledgement as to what was delivered into the SCSI layer,
    this forces a wait for the ULP to timeout on each command.  Potentially this
    invites a large list of timeouts to stumble over before recovery while each
    timeout may be met with a management command.  One wonders if you have saved
    any effort.  This is compared to checking the sequence of commands at the
    receiver which also provides acknowledgement.  This means there is no extra
    effort to ensure sequential delivery and a problem can be detected and
    overcome without involving the ULP.
    
    A result of not having any acknowledgement within the iSCSI transport would
    be all problems are determined by timeouts within the ULP.  Each problem is
    met with uncertainty of cause.  There would only be one command to flush per
    such timeout however.  I was just trying to correct the language you used
    with respect to command and not task allegiance.  You have however failed to
    continue the operation of the sequential device based on a network problem.
    In addition, you must ensure that the driver notices the intent of the
    management command and finds the correct connection to send this command.
    If this connector is indeed unplugged, then this command as well as the one
    you are attempting to abort will timeout.  After two ULP timeouts, a
    connection tear down will then create many more such events even if the
    problem is not with the network.  Check by pinging first?  How long do you
    wait for a ping to respond?
    
    Without management being serialized, you could not be sure of their
    placement relative to other connections.  All connections would need to stop
    until this management command is acknowledged by the SCSI device and even
    then these pending commands on other connections may not have already
    arrived.  The first timeout caused some application to screech to a halt and
    now the entire system will be required to wait for this recovery.  Should
    this problem happen again, there will be uncertainty as to whether it is a
    connection problem or a device problem.  A ping down the connection in
    question may reveal a problem after an additional timeout. You have removed
    communication with the sequencer with the exception of "rare" sequential
    commands but recovery from a connection falter looks difficult, slow and
    highly dependent upon the ULP being well written for this iSCSI environment.
    
    Doug
    
    > Charles Monia wrote:
    >
    > > > Mark has already replied to your question on why linked commands won't
    > > > work given today's implementations. In most cases, the initiator task
    > > > tag is either generated in the HBA driver or in the HBA firmware.
    > >
    > > The fact that some adapter implementations on some interconnects may not
    > > support linked commands does not grant a license to delete the
    > capability
    > > from the protocol specification.
    >
    > Charles,
    >
    > I was'nt saying that iSCSI must not support linked commands. See my
    > comment on this :
    >
    > > I agree that there is no need to say linked commands are unsupported
    > > since this is a ULP feature and support or lack thereof is decided at
    > > the initiator and target ULPs.
    >
    > What I did say was that several/most implementations perform task tag
    > initialization at the LLP or further below rendering this feature
    > un-usable in several cases.
    >
    > The more interesting question is :
    > Is there any particular reason connection allegiance would rather be
    > enforced per command than per task ? (if linked commands are un-used,
    > this is a moot question....). If it were enforced per task, then, an
    > Abort Task would effectively flush all stale PDUs of that task ensuring
    > no stale PDUs in the network upon I/O termination at the initiator.
    >
    > - Santosh
    
    


Home

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