Re: Implementer's Guide - Task Management Issue

"Mallikarjun C." <[email protected]>
Newsgroups gmane.ietf.ips
Message-ID <[email protected]>
I noticed one clipped sentence, I meant:

"I assume this is essentially what you are proposing that we consider (fast multi-task abort with outstanding TTTs always, even without the key negotiation)."

Rest looks alright.

Mallikarjun


----- Original Message ----
From: Mallikarjun C. <[email protected]>
To: [email protected]
Sent: Monday, December 11, 2006 8:34:55 AM
Subject: Re: [Ips] Implementer's Guide - Task Management Issue


David,

Sorry for the delay in getting back.  Between vacation and other travel, it took me a while.  Thanks for the comments.

You wrote this regarding fast multi-task abort:
>This property is
>useful even if the new key is not negotiated (and hence the
>AsyncEvent 5 message is not used for fast abort of data transfers)

I assume this is essentially what you are proposing that we consider (fast 

The reason we decided a new key is needed here was for two reasons:
1. Whenever TMF does a fast completion, target needs an (eventual) deterministic confirmation that data transfers had stopped.  The confirmation is Nop-Out, and the negotiation for the new Nop-Out is via the FastMultiTaskAbort key.
2. The initiator requirement in the "classic" case (i.e. key not negotiated) is that it respond to each TTT for affected tasks even while the task is "affected".  We wanted an opposite behavior, but with a confirmation that the data transfers had stopped (so target can recover the buffer resources).  The key allows this new behavior on initiator's part as well.

>This is approximately
>what is described in the Implementation Note at the end of
>Section 4.1.3, although that note may have been intended to
>be iSER-specific - if so, this is a proposal to apply it to
>iSCSI without the RDMA extensions.

Actually the note is intended for all iSCSI implementations.  After seeing your observation, I decided that it needs improvement, I propose the following new text:

"Implementation note: Technically, the TMF servicing is complete in Step.e.  Data transfers corresponding to terminated tasks may however still be in progress even at the end of Step.f.  TMF Response MUST NOT be sent by the target iSCSI layer before the end of Step.e, and may be sent at the end of Step.e despite these outstanding Data transfers until Step.g.  These data transfers, if any, MUST be silently discarded by the target iSCSI layer.  In the case of iSCSI/iSER, these transfers would be into tagged buffers with STags not owned by any active tasks.  Step.g specifies an event to free up the resources.  A target may, on an implementation-defined internal timeout, also choose to drop the connections on which it did not receive the expected Nop-Out acknowledgements so as to reclaim the associated buffer, STag and TTT resources as appropriate."

Now that I read the text after a long time, I spotted an unintended double negative in section 4.1.3, target behavior, bullet d-ii.  The text should read:
"ii) each connection except the issuing connection of the issuing session that has at least one allegiant affected task."    (i.e. drop "non" from "non-issuing")

The other thing that came to my mind after reading your note is that we don't currently have a generic key to capture the Response Fence behavior - although response fencing underlies both the fast multi-task abort as well as addressing ACA race conditions (and perhaps others down the road. e.g. around persistent reservations).  So, today, the Note at the end of section 3.3.3 advises that implementations may check the FastMultiTaskAbort key to verify if safe behavior for MCS ACA is supported, although ACA has really nothing to do with multi-task aborting.  I am wondering if we should create a new key (say ResponseFence), so the semantics would become:
                                                                      
       ResponseFence    "Yes"  fencing done by target      
                                   "No"   legacy, no fencing (so "clarified" TMF semantics are not possible either)
       
With ResponseFence=    "Yes"
FastMultiTaskAbort     
      "Yes"                   fast abort & fencing              
       "No"                    traditional wait on outstanding TTTs (fencing on ACA is still possible)

With ResponseFence=    "No"
FastMultiTaskAbort     
      "Yes"                   Illegal, Response Fence must be "Yes"
       "No"                    No fencing, must wait on oustanding TTTs
  

The downside of this scheme is that it may be going in the opposite direction than you wanted (introduces a second key that 3720-compliant implementations don't know about).  We could alternatively simply mandate the behavior equivalent to ResponseFence = "Yes" always and avoid the second key, but doing so could make the current 3720-compliant implementations technically non-iSCSI-compliant.

Comments?

Mallikarjun                             

----- Original Message ----
From: "[email protected]" <[email protected]>
To: [email protected]
Cc: [email protected]
Sent: Wednesday, November 22, 2006 2:00:25 PM
Subject: [Ips] Implementer's Guide - Task Management Issue


To make sure we actually have some content to talk about in
this WG Last Call, I'm going to reraise an issue that came
up earlier on the mailing list, but (as far as I can recall)
never got resolved.  This is done with my WG chair hat OFF,
and it is a proposal for further discussion.

Section 4.1.3 changes task management, and is a non-transparent
change - it requires negotiating a new key so that both sides
agree that they support the change as it uses a round-trip
exchange of a new message (AsyncEvent 5) between initiator and
target to abort in-progress data transfers rather than completing
them.  Absent this message, the target expects the initiator(s)
to complete all in-progress transfers, and is entitled to be
unhappy or worse if that doesn't happen.

For task management functions that affect tasks from more than
one initiator (CLEAR TASK SET, TARGET WARM RESET, TARGET COLD
RESET)  Section 4.1.3 also allows the task management function
(TMF) to complete while the in-progress data transfers are still
being dealt with, which has the useful effect of avoiding a
situation in which an uncooperative initiator can stall the
progress of a TMF sent by another initiator.  This property is
useful even if the new key is not negotiated (and hence the
AsyncEvent 5 message is not used for fast abort of data transfers)
although I think the target behavior is subtly different between
the initiator that sent the TMF and other initiators in this case:
- For the TMF sender, the target must wait for all outstanding
    transfers to complete before completing the TMF, otherwise
    the TMF completion comes back too early for an unmodified
    initiator.
- For the other initiators, the data transfers can be immediately
    redirected to bit buckets so the TMF can be completed without
    waits beyond that for the TMF sender.  This is approximately
    what is described in the Implementation Note at the end of
    Section 4.1.3, although that note may have been intended to
    be iSER-specific - if so, this is a proposal to apply it to
    iSCSI without the RDMA extensions.

High Availability clustering environments in which TMFs are being
used to determine cluster membership (yes, there's code out there
that does this, even though everyone should be using PERSISTENT
RESERVE) are a specific situation where this helps, as having to
wait for a dead initiator to expire (the TCP connection(s) have
to timeout and get torn down) slows down cluster recovery from a
failure.  This change in target behavior (to complete a TMF faster
if other initiators don't cooperate) should be transparent to
RFC 3720-compliant initiators, but RFC 3720 has to be modified
in order to allow it; the Implementer's Guide is a vehicle that
can make that modification.

This is proposed for further discussion.

Thanks,
--David
----------------------------------------------------
David L. Black, Senior Technologist
EMC Corporation, 176 South St., Hopkinton, MA  01748
+1 (508) 293-7953             FAX: +1 (508) 293-7786
[email protected]        Mobile: +1 (978) 394-7754
----------------------------------------------------

_______________________________________________
Ips mailing list
[email protected]
https://www1.ietf.org/mailman/listinfo/ips



____________________________________________________________________________________
Do you Yahoo!?
Everyone is raving about the all-new Yahoo! Mail beta.
http://new.mail.yahoo.com

_______________________________________________
Ips mailing list
[email protected]
https://www1.ietf.org/mailman/listinfo/ips


 
____________________________________________________________________________________
Do you Yahoo!?
Everyone is raving about the all-new Yahoo! Mail beta.
http://new.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.