Persistent Reserve questions about ALL_TG_PT bit
Elliott, Robert (Server Storage)
Elliott at hp.com
Thu Apr 17 09:13:03 PDT 2008
* From the T10 Reflector (t10 at t10.org), posted by:
* "Elliott, Robert (Server Storage)" <Elliott at hp.com>
> -----Original Message-----
> From: owner-t10 at t10.org [mailto:owner-t10 at t10.org] On Behalf
> Of Gerry.Houlder at seagate.com
> Sent: Wednesday, April 16, 2008 2:07 PM
> To: t10 at t10.org
> Subject: Persistent Reserve questions about ALL_TG_PT bit
> * From the T10 Reflector (t10 at t10.org), posted by:
> * Gerry.Houlder at seagate.com
> (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
> 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
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
Only a key of 0 would disrupt the reservation, since it deletes
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
> 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 hp.com
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 t10.org
More information about the T10