SAS (SPL) and ADT transport issues with TMF's

Knight, Frederick Frederick.Knight at netapp.com
Thu Jul 3 08:49:35 PDT 2014


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

I’m with Kevin on this one.  YES, processing should have ended, but maybe
it hasn’t.  And, it isn’t just those two TMFs.
Say one of those commands (INQUIRY, REPORT LUNS, or REQUEST SENSE) takes too
long, so the application sends a LUR to get the command out of the device
(maybe the device got temporarily busy doing something else).  Shouldn’t
that LOGICAL UNIT RESET cause a stuck REPORT LUNS command to be terminated? 
We may model LUNs as 100% independent, but large arrays don’t have 1 CPU
per LUN.  When the system is busy, it is busy, and command processing in an
“incorrect LUN” may have lower priority than “real” work on other
LUNs.
Shouldn’t the architecture work correctly without depending on “oh, that
isn’t going to happen” statements?
		Fred
From: owner-t10 at t10.org [mailto:owner-t10 at t10.org] On Behalf Of George
Penokie
Sent: Wednesday, July 02, 2014 9:21 AM
To: Kevin D Butt
Cc: Reflector T10
Subject: Re: SAS (SPL) and ADT transport issues with TMF's
Kevin,
I see no real problem so I'm not sure what your point is. There are only two
TMFs that operate on an individual command (ABORT TASK and QUERY TASK). Also,
there is no queuing defined for the task router that is handling the commands
that do not have valid LUNs so those commands do not sit around. They should
to be processed immediately. By the time either of those TMFs could be issued
and handled the command should have ended.
Bye for now,
George Penokie
Avago Technologies
3033 41 St NW
Rochester , MN 55901
507-328-9017
george.penokie at avagotech.com
On Tue, Jul 1, 2014 at 6:42 PM, Kevin D Butt
<kdbutt at us.ibm.com> wrote:
My engineers have uncovered what we believe is a bug in the standards related
to task management functions addressed to a logical unit that does not exist.
In SPL-3 and ADT-2 the task management function IU's reject TMF's addressed
to a logical unit that does not exist.	However, the SCSI command IU refers
to SAM which says process REQUEST SENSE, REPORT LUNS, or INQUIRY and reject
the rest.  These leaves a hole when a TMF needs to be performed on a REQUEST
SENSE, REPORT LUNS, or INQUIRY with no way to do so.
In SPL-3
8.2.2.1 COMMAND frame - Command information unit
The LOGICAL UNIT NUMBER field specifies the logical unit number of the
logical unit to which the task router shall route the command. The structure
of the LOGICAL UNIT NUMBER field shall be as defined in SAM-5. <<If the
addressed logical unit does not exist, then the task router shall follow the
rules for selection of incorrect logical units defined in SAM-5.>>
8.2.2.2 TASK frame - Task Management Function information unit
The LOGICAL UNIT NUMBER field specifies the logical unit number of the
logical unit, if any, to which the task router shall route the task
management function. The structure of the LOGICAL UNIT NUMBER field shall be
as defined in SAM-5. <<If the addressed logical unit does not exist, then the
task router shall return a RESPONSE frame with the DATAPRES field set to
RESPONSE_DATA and its RESPONSE CODE field set to INCORRECT LOGICAL UNIT
NUMBER.>>
In ADT-2
8.1.2 SCSI Command information unit
The LUN field indicates the logical unit number to which the command shall be
routed within the SCSI target device. <<If the addressed logical unit does
not exist, the task manager shall follow the rules for selection of invalid
logical units defined in SAM-4.>>
8.1.3 SCSI Task Management information unit
The LOGICAL UNIT NUMBER field contains the address of the logical unit. The
structure of the logical unit number field shall be as defined in SAM-4. <<If
the addressed logical unit does not exist, the task manager shall return a
SCSI Response IU with its RESPONSE CODE field set to INVALID LOGICAL UNIT
NUMBER IN SCSI TASK MANAGEMENT IU.>>
SAM-5
5.11 Incorrect logical unit numbers for commands
The SCSI target device's processing of an incorrect logical unit number (see
4.7.1) is described in this subclause.
In response to a REQUEST SENSE command, a REPORT LUNS command, or an INQUIRY
command the SCSI target device shall respond as defined in SPC-4.
Any command except REQUEST SENSE, REPORT LUNS, or INQUIRY:
e) shall be terminated with CHECK CONDITION status, with the sense key set to
ILLEGAL REQUEST, and with the additional sense code set to LOGICAL UNIT NOT
SUPPORTED, if:
A) the SCSI target device is not capable of supporting the logical unit
(e.g., some SCSI target devices support only one peripheral device); or
B) the SCSI target device supports the logical unit, but the peripheral
device is not currently connected to the SCSI target device;
or
f) is responded to in a vendor specific manner, if:
A) the SCSI target device supports the logical unit and the peripheral device
is connected, but the peripheral device is not operational; or
B) the SCSI target device supports the logical unit but is incapable of
determining if the peripheral device is connected or is not operational
because the peripheral device is not ready.
Does anybody disagree?
Kevin D. Butt
SCSI Architect, Tape Firmware, T10 Standards
Data Protection & Retention
MS 6TYA, 9000 S. Rita Rd., Tucson, AZ 85744
Tel: 520-799-5280<tel:520-799-5280>
Fax: 520-799-2723<tel:520-799-2723> (T/L:321)
Email address: kdbutt at us.ibm.com
http://www-03.ibm.com/servers/storage/



More information about the T10 mailing list