Re: Fast multi-task abort model

"Mallikarjun C." <[email protected]>
Newsgroups gmane.ietf.ips
Message-ID <[email protected]>
Bill,

> I still don't see how dropping the TTT wait will
> hurt more than the 
> others. I'm really trying to, but can't.

OK.  Let me attempt to be more specific.  Here are
some spec implications if we eliminate the inter-nexus
TTT wait from RFC 3720 text.  All these must be
specified in addition to deleting the TTT wait.
 
- Do not deallocate the buffers assigned to the
currently active TTTs at the time of task termination.

- Do not assign the outstanding TTT-LUN pairs to other
tasks on the matching session-connection until a "TMF
TTT-Buffer release event" although tasks that own the
TTTs are terminated.

- Do not Reject any Data-Out PDUs with an invalid
ITT-TTT combination if the combination has a buffer
assignment.  Place the inbound data in the assigned
buffer and ignore the data.

- The outstanding TTTs and the assigned buffers can be
freed only upon the corresponding "TMF TTT-Buffer
release event".  The event can be one of:
	a) Last Data-Out PDU with the F-bit set for that 
           TTT-LUN combination (not an ideal fit for
iSCSI/iSER)
	b) Implementation-specific timeout
	c) Connection/session termination

And on the initiator side, we have to specify that an
initiator must continue to respond to an outstanding
TTT via Data-out PDUs even after the tasks are
terminated - i.e. even after TMF Response with
"success" is received.

These are fairly invasive changes to current model. 
These *can* however be done.  Assume we have them all
specified as RFC 3720 "errata", how far off would then
the new multi-task abort model be?  I see only two
additional items remaining - sending an Async PDU, and
specifying one additional TMF TTT-Buffer Release
event:"d) Receiving a Nop-Out ack for the Async PDU"

Given all this, I still think the best course of
specifying this whole area is:

(1) Make two specific deltas to RFC 3720 model as
"errata" 
           (a) Delete 3rd-party CmdSN gap wait
           (b) Delete 3rd-party StatSN ack wait
    This would be the new default iSCSI behavior.

(2) Define the new multi-task abort model separately. 
This
    includes the above two deltas and the TTT-wait
delta.
    This will be the operational behavior only if 
    "FastMultiTaskAbort=Yes" is negotiated.


Mallikarjun




--- William Studenmund <[email protected]>
wrote:

> On Dec 8, 2005, at 10:45 AM, Mallikarjun C. wrote:
> 
> >> If the target breaks the buffer associations,
> does
> >> it really have to
> >> invalidate the TTT?
> >
> > We may be using different terminologies.....
> 
> Probably.
> 
> > I think of:
> > "invalidating the TTT" = "breaking the buffer
> > association" = "not having a buffer behind a TTT"
> >
> > And that can be a serious problem in iSCSI-3720,
> and
> > fatal in iSCSI/iSER.
> 
> Because of that concern, I would like to suggest we
> refine our 
> terminology, and make a distinction that hasn't been
> made before.
> 
> I suggest we consider "breaking the buffer
> association" at the SCSI 
> layer to be separate from breaking it at the iSCSI
> level. All the task 
> state diagram in SAM-2 (and later SAM) care about is
> the SCSI layer.
> 
> Specifically, I think it'd be fine for an abort to
> leave the TTT's 
> buffer around and simply do nothing with it once the
> TTT is done. Thus 
> all the PDUs flying at the target still find a
> destination (either in 
> TCP iSCSI or iSER).
> 
> >> I think it's fine for a task to be
> >> terminated at the
> >> SCSI level yet still have things going on (being
> >> cleaned up) at the
> >> iSCSI level.
> >
> > Precisely.  That's the fast multi-task abort
> model.
> >
> > I don't see a disagreement wrt the preferred
> behavior.
> >  Only on the mechanics of how to phase it in.  I
> think
> > if the inter-nexus TTT wait requirement from the
> 3720
> > text is deleted, we have to add several careful
> > sentences on how it would still work well with
> both
> > iSCSI-3720 and iSCSI/iSER.  By then, we would have
> > suggested enough deltas to protocol behavior that
> it
> > would be very close to the new proposal.
> 
> Kind of. I agree we will need to add text, but I
> don't think it will be 
> that bad.
> 
> I see the inter-nexus-TTT-fixup idea as an
> intermediate step between 
> what we have now and the new multi-task abort model.
> We add the idea of 
> not waiting for inter-nexus cleanup to finish (we do
> wait for it to 
> start!) and we add the idea that data arriving after
> cleanup started to 
> not get used by the SCSI layer. The new multi-task
> abort model then 
> adds a method by which we can cleanly fix multiple
> tasks at once.
> 
> > Note that this is different from scratching the
> other
> > two waits - inter-nexus CmdSN gap wait,
> inter-nexus
> > StatSN ack wait.  They can be simply dropped
> without
> > any additional mandates.
> 
> I still don't see how dropping the TTT wait will
> hurt more than the 
> others. I'm really trying to, but can't.
> 
> I fully agree I'm proposing a notable protocol
> change. :-) The reason 
> I'm contemplating it, much less strongly suggesting
> it, is that 1) I 
> think the wait we have isn't workable. Something
> needs to be done. 2) 
> I'm not really sure how initiators will notice the
> change. Since the 
> on-the-wire PDUs won't change, I suspect many
> initiators will never 
> notice.
> 
> Take care,
> 
> Bill
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

_______________________________________________
Ips mailing list
[email protected]
https://www1.ietf.org/mailman/listinfo/ips
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.