Formatted message: <a href="http://www.t10.org/cgi-bin/ac.pl?t=r&f=r1301151_f.htm">HTML-formatted message</a>
Hi Gerry,
Someplace along the line I think we got off the beam. Here is some text from
SAM-1 with some comments:
a) "An ABORT TASK SET function terminates all tasks for the initiator on
the specified task set of the target." However, there is no definition in
SAM-1 as to what a "specified task set" is or how it's defined. The TST
field wasn't defined until SPC-2r2 over two years later; and
b) "The CLEAR TASK SET function terminates all tasks for all initiators on
the specified task set of the target." Again, there is no definition in
SAM-1 as to what a "specified task set" is.
It seems to me that, since there wasn't any definition of what a "specified
task set" was, that the intent was as you described it, and, I think how many
of us understand it (i.e., CLEAR TASK SET clears all commands for all
initiators).
It looks like this stuff stayed out of sync, with the final insult being a
change that was made in SAM-4r12 based on proposal 06-026r4 from Rob Elliot.
Maybe Rob can reconcile all of this, but it looks to me like we need to
change the definitions in SAM-5 to something like:
7.3 ABORT TASK SET
.....
Description:
This function shall be supported by all logical units.
If the task manager maintains one task set for all I_T nexuses as specified
by the TST field in the Control mode page (see SPC-4), then the task manager
shall abort all commands in the task set (i.e., the equivalent of a CLEAR
TASK SET task management function). If the task manager maintains one task
set for each I_T nexus as specified by the TST field, then the task manager
shall abort all commands in the task set that were received on the specified
I_T nexus.
All pending status and sense data for the commands that were aborted shall be
cleared. Other previously established conditions, including mode parameters,
reservations, and ACA shall not be changed by the ABORT TASK SET function.
All SCSI transport protocol standards shall support the ABORT TASK SET task
management function.
.....
7.5 CLEAR TASK SET
.....
Description:
This function shall be supported by all logical units.
The task manager shall abort all commands in all task sets as described in
5.6.
All pending status and sense data for the task set shall be cleared. Other
previously established conditions, including mode parameters, reservations,
and ACA shall not be changed by the CLEAR TASK SET function.
All SCSI transport protocol standards shall support the CLEAR TASK SET task
management function.
.....
Please feel free to call or send an email to me with any comments or
questions that you have about this stuff.
Regards,
Mark Evans
Western Digital Corporation
5863 Rue Ferrari
San Jose, CA 95138
Email: mark.evans at wdc.com
Home office: 541.563.7880
Cell: 408.391.7805
From: owner-t10 at t10.org [mailto:owner-t10 at t10.org] On Behalf Of Gerry Houlder
Sent: Tuesday, January 15, 2013 12:11 PM
To: T10 Reflector
Subject: Question about CLEAR TASK SET and ABORT TASK SET
I have a question about the effects of the ABORT TASK SET and CLEAR TASK SET
functions.
The scope of these functions is affected by the TST setting (i.e., whether
the device server maintains a separate task set for each I_T nexus (TST=001b)
or puts all commands from all I_T nexes in the same task set (TST=000b).
My historical understanding of these functions is:
* ABORT TASK SET is supposed to abort all commands within the defined
task set. If TST=000b, this would be all commands from all I_T nexes; if
TST=001b, this would be all commands from a particular I_T nexus.
* CLEAR TASK SET is supposed to clear all commands in all task sets,
regardless of TST bit setting.
The SAM-5 wording regarding these functions seem to describe these functions
differently.
* The ABORT TASK SET wording seems to require aborting command for a
single I_T nexus, which is part of the task set (assuming the device server
has outstanding commands from several I_T nexes) if TST=000b and an entire
task set if TST=001b.
* SAM-5 wording for CLEAR TASK SET says it only affects one task set, so
if TST=000b then it affects all commands and if TST=001b then only the
commands in a single task set (i.e., from one I_T nexus) are affected.
* With the current SAM-5 definitions, neither ABORT TASK SET or CLEAR
TASK SET will abort all commands in all task sets if TST=0001b. This seems
wrong.
I think the current SAM-5 wording of these functions is not the best. Where
do we go from here?