SAM and SPC directly conflict II

Ralph Weber 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 5.8.1.1:

  "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 5.8.1.2)."

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.

Ralph...

peterson_gary at emc.com wrote:

>
> While we're on the subject, I have another question:
>
> SPC-2 (rev20) section 5.5.3.6.4 (Preempting Persistent Reservations) states
> that
> "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
> here).
>
> 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
> topic.
>
> 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.
>
> Ralph...
>
> *
> * 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 mailing list