Review of Persistent Reservation, Problem #1, conflict with tasks.
Bob Snively
Bob.Snively at Eng.Sun.COM
Tue Jul 8 13:48:27 PDT 1997
* From the T10 (formerly SCSI) Reflector (t10 at symbios.com), posted by:
* Bob Snively <Bob.Snively at Eng.Sun.COM>
*
Review of Persistent Reservation
PROBLEM #1:
While examining the persistent reservation text, I was struck by a
one liner with profound implications:
Commands from any initiator that conflict with a successfully
established persistent reservation shall be rejected with a
status of RESERVATION CONFLICT. The following commands shall
not conflict with a reservation established by the PERSISTENT
RESERVE OUT command:
PERSISTENT RESERVE IN
PERSISTENT RESERVE OUT (with an Service action of Preempt)
PERSISTENT RESERVE OUT (with an Service action of Preempt and Clear)
PERSISTENT RESERVE OUT (with a Reserve service action that does not
conflict with established persistent reservations or tasks)
The curious words here are "or tasks".
That implies what is not stated anywhere else that I can find, that
a PERSISTENT RESERVE OUT can only be executed after all queued tasks that may
conflict with the reservation are completed. The words apparently
apply to all tasks, including those that are enabled by having been
started, and those that are blocked or queued even against an ordered
PERSISTENT RESERVE OUT. Not only is the PERSISTENT RESERVE OUT potentially
delayed by a task, but it can even encounter a RESERVATION CONFLICT with
the task.
Note 26 (below) seems to imply the behavior I would actually expect. That is,
when a PERSISTENT RESERVE OUT conflicts with a task that has already been
passed to the device or is passed to the device before the PERSISTENT RESERVE
OUT command is enabled and begins execution, the time of effectiveness
of a reserve service action is vendor specific.
Notes 27 and 29 provide similar warnings for Preempt and Preempt & Clear.
NOTE 26 For the simplest predictable behavior, the Reserve
service action should be performed with the Ordered task attribute.
FIX?
At the earliest time allowed by the standards process:
I would suggest that we remove the words:
"or tasks)" from the document.
I would suggest that we should make NOTES 26, 27, and 29 a little less
cryptic and state:
NOTE xx: The time of effectiveness of a reservation with respect
to other tasks being managed by the device server is vendor
specific. Successful completion of the PERSISTENT RESERVE OUT
command indicates that the new reservation is active. An active
reservation may apply to some or all tasks queued before the
completion of the PERSISTENT RESERVE OUT command. The reservation
shall apply to all tasks received after completion of the
PERSISTENT RESERVE OUT command.
*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at symbios.com
More information about the T10
mailing list