Return-Path: <owner-ips-outgoing@ece.cmu.edu>
Received: from newbox.ece.cmu.edu (localhost [127.0.0.1])
	by newbox.ece.cmu.edu (Cyrus v2.1.12) with LMTP; Wed, 06 Aug 2003 15:34:14 -0400
X-Sieve: CMU Sieve 2.2
Received: from hazard.ece.cmu.edu (HAZARD.ECE.CMU.EDU [128.2.129.24])
	by newbox.ece.cmu.edu (Postfix) with ESMTP id 85F563342
	for <ipsml@ece.cmu.edu>; Wed,  6 Aug 2003 15:34:14 -0400 (EDT)
Received: by hazard.ece.cmu.edu (Postfix, from userid 953)
	id 51E8017A; Wed,  6 Aug 2003 15:34:14 -0400 (EDT)
Received: from sos.ece.cmu.edu (SOS.ECE.CMU.EDU [128.2.129.27])
	by hazard.ece.cmu.edu (Postfix) with ESMTP
	id 3F84B168; Wed,  6 Aug 2003 15:34:00 -0400 (EDT)
Received: by sos.ece.cmu.edu (Postfix)
	id 760A389F1; Wed,  6 Aug 2003 15:33:44 -0400 (EDT)
Delivered-To: ips-outgoing@sos.ece.cmu.edu
Received: from hazard.ece.cmu.edu (HAZARD.ECE.CMU.EDU [128.2.129.24])
	by sos.ece.cmu.edu (Postfix) with ESMTP id 636C889E7
	for <ips-outgoing@sos.ece.cmu.edu>; Wed,  6 Aug 2003 15:33:44 -0400 (EDT)
Received: by hazard.ece.cmu.edu (Postfix)
	id DE557168; Wed,  6 Aug 2003 15:33:43 -0400 (EDT)
Delivered-To: ips-outgoing@ece.cmu.edu
Received: by hazard.ece.cmu.edu (Postfix, from userid 953)
	id AD95516A; Wed,  6 Aug 2003 15:33:43 -0400 (EDT)
Received: from sos.ece.cmu.edu (SOS.ECE.CMU.EDU [128.2.129.27])
	by hazard.ece.cmu.edu (Postfix) with ESMTP id F0496164
	for <ips-outgoing@ece.cmu.edu>; Wed,  6 Aug 2003 15:33:32 -0400 (EDT)
Received: by sos.ece.cmu.edu (Postfix, from userid 363)
	id DADB689F2; Wed,  6 Aug 2003 15:33:32 -0400 (EDT)
X-Original-To: ips@sos.ece.cmu.edu
Delivered-To: ips@sos.ece.cmu.edu
Received: from hazard.ece.cmu.edu (HAZARD.ECE.CMU.EDU [128.2.129.24])
	by sos.ece.cmu.edu (Postfix) with ESMTP id 54B7989E7
	for <ips@sos.ece.cmu.edu>; Wed,  6 Aug 2003 15:33:31 -0400 (EDT)
Received: by hazard.ece.cmu.edu (Postfix)
	id 300CE164; Wed,  6 Aug 2003 15:33:31 -0400 (EDT)
Delivered-To: ips@ece.cmu.edu
Received: by hazard.ece.cmu.edu (Postfix, from userid 953)
	id 09078168; Wed,  6 Aug 2003 15:33:31 -0400 (EDT)
Received: from mail.ivivity.com (unknown [64.238.111.99])
	by hazard.ece.cmu.edu (Postfix) with ESMTP id F1474164
	for <ips@ece.cmu.edu>; Wed,  6 Aug 2003 15:33:18 -0400 (EDT)
Received: by atlops.ivivity.com with Internet Mail Service (5.5.2653.19)
	id <QMWLW1N6>; Wed, 6 Aug 2003 15:33:18 -0400
Message-ID: <AEC4671C8179D61194DE0002B328BDD2858008@atlops.ivivity.com>
From: Eddy Quicksall <eddy_quicksall@ivivity.com>
To: wrstuden@wasabisystems.com, pat_thaler@agilent.com
Cc: satran@haifasphere.co.il, julian@cs.haifa.ac.il,
	Black_David@emc.com, dcuddihy@attotech.com, ips@ece.cmu.edu
Subject: RE: StatSN and overlapped commands
Date: Wed, 6 Aug 2003 15:33:15 -0400 
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2653.19)
Content-Type: text/plain
Sender: owner-ips@ece.cmu.edu
Precedence: bulk
X-Spam-Status: No, hits=-22.6 required=5.0
	tests=BAYES_01,EMAIL_ATTRIBUTION,ORIGINAL_MESSAGE,
	      QUOTED_EMAIL_TEXT
	version=2.50
X-Spam-Level: 
X-Spam-Checker-Version: SpamAssassin 2.50 (1.173-2003-02-20-exp)

I realize I may have not been clear ... here is what I'm trying to say:

The original example was that the initiator sent another command but did not
acknowledge that it got the status (and the commands were untagged). That
progressed into it using the same ITT.

Since the reuse of the ITT argument only applies if he did not acknowledge
he got the status then I see these both as the same problem; and that is
that the initiator is most likely overlapping commands (even though this
particular overlap can't be caught at the SCSI layer).

Eddy

-----Original Message-----
From: Eddy Quicksall [mailto:eddy_quicksall@ivivity.com] 
Sent: Wednesday, August 06, 2003 3:23 PM
To: wrstuden@wasabisystems.com; pat_thaler@agilent.com
Cc: satran@haifasphere.co.il; julian@cs.haifa.ac.il; Black_David@emc.com;
dcuddihy@attotech.com; ips@ece.cmu.edu
Subject: RE: StatSN and overlapped commands

I don't think we should make it an error if that implies that the target
needs to check for the error.

It seems that if the initiator does this, he probably has a bug or a race
condition that will lead to a bug later. So isn't it his responsibility to
debug his program?

Eddy

-----Original Message-----
From: wrstuden@wasabisystems.com [mailto:wrstuden@wasabisystems.com] 
Sent: Wednesday, August 06, 2003 3:12 PM
To: pat_thaler@agilent.com
Cc: satran@haifasphere.co.il; julian@cs.haifa.ac.il; Black_David@emc.com;
dcuddihy@attotech.com; ips@ece.cmu.edu
Subject: RE: StatSN and overlapped commands

On Wed, 6 Aug 2003 pat_thaler@agilent.com wrote:

> Julian,
>
> For recovery, the target has to remember the status, but that doesn't
> mean it has to keep the task information around. It would have the
> status message linked to StatSN but it would be typical to clear away
> any task context when that message is generated. Remember that when
> things are very busy it might get a single acknowledgement that
> acknowledges multiple status messages from multiple tasks. It isn't
> efficient to have to go back to do the task context clean up when the
> status ack comes.
>
> It is the initiator's job to not shoot itself in the foot by issuing a
> new command with the same task tag as one that it hasn't gotten status
> on yet. For the target, once the status is generated, the task is gone.
> The status message may still be there available for a resend, but the
> task is gone. I don't see any requirement in iSCSI or SCSI to do
> anything other than that.

Pat,

Would this be agreable: we make it an error for the initiator to re-use a
task tag for which it hasn't received status, and we let the target
terminate the iSCSI task after sending the status if it is not going to do
any recovery. Likewise, we permit the target to choose to not terminate
the iSCSI task until it receives status.

That way you're fine if you shut the task down after sending status, but
likewise targets that _don't_ shut the task down until receiving status
are perfectly ok to complain if they notice the task re-use. And I'd
expect regression testing targets to keep the task around until status ack
to catch this error case.

While I agree the spec is unclear, I read it and took away the idea that
the ITT can't be re-used until status is ack'd. :-)

Please note I'm talking about the iSCSI task in all of the above. I agree
with David that the SCSI task is over before/when we send status. ;-)

Take care,

Bill
