Persistent Reserve questions about ALL_TG_PT bit

Elliott, Robert (Server Storage) Elliott at
Thu Apr 17 09:13:03 PDT 2008

* From the T10 Reflector (t10 at, posted by:
* "Elliott, Robert (Server Storage)" <Elliott at>
> -----Original Message-----
> From: owner-t10 at [mailto:owner-t10 at] On Behalf
> Of Gerry.Houlder at
> Sent: Wednesday, April 16, 2008 2:07 PM
> To: t10 at
> Subject: Persistent Reserve questions about ALL_TG_PT bit
> * From the T10 Reflector (t10 at, posted by:
> * Gerry.Houlder at
> *
> (1) If an initiator sends PR OUT command with REGISTER or REGISTER AND
> IGNORE EXISTING KEY service action and the ALL_TG_PT bit set,
> what should be done if that initiator is already registered on one or
> more other ports?
The intent was the device server does the same work as if each of
those I_T nexuses were used to run REGISTER or REGISTER AND IGNORE
EXISTING KEY one at a time.  It's just a shortcut for issuing
multiple commands.
> There are words added for SPEC_I_PT bit case that require
> CHECK CONDITION status and the register operation is aborted but
> it is unclear if this result should occur for ALL_TG_PT case as
> well, or if the new registration should override the existing
> registration.
I disagreed with SPEC_I_PT changing that way, but Ralph felt
something wasn't fully defined and it was simpler to just
prohibit it than work out the details (and I was not available
to help work out all the details at that time).
> (2) Question 1 is even tricker if the existing registration
> on another port also happens to hold a reservation. Overriding
> such a registration with a new key (for instance) could
> affect the reservation.
An I_T nexus that holds a reservation is allowed to run REGISTER
without disrupting its reservation:
"It is not an error for an I_T nexus that is registered to be
registered again with the same reservation key or a new
reservation key."
Only a key of 0 would disrupt the reservation, since it deletes
the registration.
Note that the passive phrase "to be registered again" is used rather
than the active phrase "to register again", recognizing that SPEC_I_PT
or ALL_TG_PT might be used and the registration might come from
some other I_T nexus.
> (3) Doing a REGISTER with the new key set to zero is an unregister
> operation. If the ALL_TG_PT bit is set, are all ports
> unregistered or is this an illegal operation?
Yes, unregister all the I_T nexuses sharing that T.  It's
just like running the comamnd on those other I_T nexuses.
> (4) Question 3 is even trickier if the registration on
> another port is a reservation holder. If removing the registration
> would be  allowed, this would also remove a reservation that is
> owned by another port. Should this be allowed or is this an
> illegal operation?
Allowed; it's just like running the command on that other
I_T nexus.
> It seems like we have a precedent set for the SPEC_I_PT bit
> that makes this bit illegal for unregister operations (i.e.,
> an unregister can only unregister its own I_T nexus but not
> any others). This precedent also makes it illegal to create
> another registration (e.g., for another initiator) if
> such a registration already exists. Is there any reason not
> to apply these same rules to the ALL_TG_PT bit?
That SPEC_I_PT restriction was added just before SPC-3 letter
ballot. I wasn't motived enough during SPC-3 letter ballot
to provide specific corrections, so undoing the restriction
was deferred to SPC-4.	At the current rate, it will probably
be deferred to SPC-5 as well.
Rob Elliott, elliott at
Hewlett-Packard Industry Standard Server Storage Advanced Technology
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at

More information about the T10 mailing list