SAM and SPC directly conflict II
ralphoweber at compuserve.com
Wed Nov 28 09:53:22 PST 2001
* From the T10 Reflector (t10 at t10.org), posted by:
* Ralph Weber <ralphoweber at compuserve.com>
>From SAM-2 r20 PDF Page 88 18.104.22.168:
"If the TST field contains 000b, tasks created by other
initiators while the ACA or CA condition is in effect
shall not be entered into the faulted task set, except
for a PERSISTENT RESERVE command with a Preempt and Clear
service action (see 22.214.171.124)."
There is a typo here. "PERSISTENT RESERVE command with a
Preempt and Clear service action" s/b "PERSISTENT RESERVE OUT
command with a PREEMPT AND ABORT service action". This error
is fixed in SAM-2 r21.
peterson_gary at emc.com wrote:
> While we're on the subject, I have another question:
> SPC-2 (rev20) section 126.96.36.199.4 (Preempting Persistent Reservations) states
> "the device server shall clear any ACA or CA condition associated with an
> initiator being preempted and shall clear any ACA tasks with an ACA
> attribute from that initiator."
> However, as I understand it, once a unit enters Contingent Allegiance, all
> tasks in the Task Set (for all initiators) for that unit are
> suspended/aborted and no new tasks from other initiators will be accepted
> until the CA is cleared.
> As I see it, the only way for a Preempt command to execute while a unit is
> in CA is for it to arrive from the
> faulted initiator, which makes no sense to me - why would a initiator want
> to Preempt his own reservation?
> My question is then, how can a Preempt command arrive and be executed when a
> unit is in CA?
> Gary S. Peterson
> CLARiiON Storage Systems, a Division of EMC Corp.
> Phone: 508/382-7150
> FAX: 508/382-7913
> Cell: 508/472-4001
> Email: peterson_gary at emc.com
> -----Original Message-----
> From: Ralph Weber [mailto:ralphoweber at compuserve.com]
> Sent: Friday, November 23, 2001 1:24 PM
> To: T10, Reflector
> Subject: SAM and SPC directly conflict
> * From the T10 Reflector (t10 at t10.org), posted by:
> * Ralph Weber <ralphoweber at compuserve.com>
> Problem Statement:
> I have found a direct conflict between SAM and SPC,(I mean SAM-1 and SPC-1
> SPCr11a says: "A QErr bit of one specifies all the blocked tasks in the task
> set shall be aborted when
> the COMMAND TERMINATED or CHECK CONDITION status is sent."
> SAMr18 says: "A Task Abort event is one of the following: ... An ACA
> condition was cleared and the
> QErr bit was set to one in the Control mode page (see the SPC standard);"
> In SPC the tasks are aborted with the CHECK CONDITION status is sent (i.e.,
> when status is returned to the
> faulted initiator). In SAM the tasks are aborted when an ACA condition is
> cleared (i.e., when the CLEAR ACA
> task management function is processed).
> Note that this conflict has been dutifully carried forward to the current
> SAM-2 and SPC-3 even though
> various proposals has modified both the definition of QErr and the SAM-2
> task abort description.
> Good News:
> On the bright side, the difference between SAM and SPC cannot be observed
> from outside the target when
> CA and autosense are used. Since that is becoming the most common case,
> maybe any decision made here
> will not matter very much.
> If CA and REQUEST SENSE is used, the difference between the two cannot be
> detected outside the
> target unless TST=001b and QErr=01b. I hope this is a relatively rare case,
> but that is another
> Bad News:
> The difference is always observable outside the target when ACA is used, and
> 00-229r3 (Charles
> Binford's "Task Aborted - SAM changes", which incorporated in SAM-2 r15,
> Sept 2000) added
> ways in which it can be observed.
> Actions Taken (so far):
> Because it is the smallest change, I have modified SAM-2 r21 to match SPC
> (i.e., I am changed "cleared"
> to "established" where it mattered).
> I have rationalized this action as follows:
> 1) SAM never discusses what happens when a CA is established and QErr !=
> 00b. This is the most common
> case in use in the field. Since SAM says nothing about it, the SPC
> requirements apply.
> There is a catch here because incorporation of 00-229r3 added specific SAM-2
> wording that makes
> the behavior for CA to match that of ACA.
> 2) I can think of only one reason for blocking a bunch of tasks when the
> status is sent only
> to abort them when the CLEAR ACA is sent. That reason would be if a MODE
> SELECT command
> changed QErr to 00b while the ACA is active.
> My guess is that 0% of the initiator code out there takes advantage of this
> loophole and so
> no initiator software is going to be affected.
> That leaves just one issue ... Have any SCSI target implementors written
> their firmware to
> block tasks until an ACA is cleared and then abort them?
> Clearly, I am hoping that the answer to this question is "No". If it is
> "Yes" for anybody
> then we have something interesting to discuss in January.
> Happy Holidays.
> * For T10 Reflector information, send a message with
> * 'info t10' (no quotes) in the message body to majordomo at t10.org
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org
More information about the T10