Question about CLEAR TASK SET and ABORT TASK SET

Penokie, George George.Penokie at lsi.com
Wed Jan 16 07:00:31 PST 2013


Formatted message: <a href="http://www.t10.org/cgi-bin/ac.pl?t=r&f=r1301160_f.htm">HTML-formatted message</a>

Gerry,
Your understanding is not correct.
The TST setting has no effect on ABORT TASK SET. The same commands are
aborted regardless of the TST setting when an ABORT TASK SET is issued. If
TST is zero there is one task set so then all the commands from the I_T nexus
on which the command was received would be aborted and any commands from
difference I_T nexuses are not aborted. If TST is one then there is one task
set for each I_T nexus so  any time an ABORT TASK SET is received it will
abort all the commands in that task set but not affect any of the commands in
the other task sets.
The TST setting does affect the operation of the CLEAR TASK SET. If the TST
is set to zero, meaning there is one task set, then all the commands in that
task set are cleared regardless of which I_T nexus the command was received
on. However, if the TST is one then there are separate task sets for each I_T
nexus, then a CLEAR TASK SET will only clear the task set to which it is
sent. The effect of this is the same as if an ABORT TASK SET was sent to that
same task set.
The net is that if TST is set to one the ABORT TASK SET and CLEAR TASK SET
will abort the same set of commands.
This effect is clearly called out in footnote c of table 41 in SAM-5 revision
12:
If the TST field is set to 001b (i.e., per I_T nexus) in the Control mode
page (see SPC-4), then there is one task set per I_T nexus As a result, no
other I_T nexuses are affected and CLEAR TASK SET is equivalent to ABORT TASK
SET.
As for history, TST came into existence in SAM-2. In SAM-2 revision 10 the
following paragraph was in the CLEAR TASK SET section:
If the TST field equals 000b in the Control mode page (see SPC-2), the target
shall perform an action equivalent to receiving a series of ABORT TASK
requests from each initiator. If the TST field equals 001b the target shall
perform an action equivalent to receiving a series of ABORT TASK requests
|from only the requesting initiator.
I do not see any problem with the way it is currently worded in SAM-5.
Bye for now,
George Penokie
LSI Corporation
3033 41 St NW
Rochester , MN 55901
507-328-9017
george.penokie at lsi.com
From: owner-t10 at t10.org [mailto:owner-t10 at t10.org] On Behalf Of Mark Evans
Sent: Tuesday, January 15, 2013 5:36 PM
To: Gerry Houlder; T10 Reflector
Subject: RE: Question about CLEAR TASK SET and ABORT TASK SET
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?



More information about the T10 mailing list