% Sun Logo for. X3T10/95-229, Revision 0. April 18, 1998

Similar documents
% Sun Logo for Frame. X3T10/95-229, Revision 2. September 28, 1995

Elementary Educational Computer

Python Programming: An Introduction to Computer Science

n Learn how resiliency strategies reduce risk n Discover automation strategies to reduce risk

CMSC Computer Architecture Lecture 12: Virtual Memory. Prof. Yanjing Li University of Chicago

Τεχνολογία Λογισμικού

Data diverse software fault tolerance techniques

Basic allocator mechanisms The course that gives CMU its Zip! Memory Management II: Dynamic Storage Allocation Mar 6, 2000.

Chapter 10. Defining Classes. Copyright 2015 Pearson Education, Ltd.. All rights reserved.

Avid Interplay Bundle

APPLICATION NOTE PACE1750AE BUILT-IN FUNCTIONS

Baan Tools User Management

Web OS Switch Software

Chapter 4 Threads. Operating Systems: Internals and Design Principles. Ninth Edition By William Stallings

Chapter 9. Pointers and Dynamic Arrays. Copyright 2015 Pearson Education, Ltd.. All rights reserved.

The Magma Database file formats

L I N U X. Unit 6 S Y S T E M DHCP & DNS (BIND) A D M I N I S T R A T I O n DPW

One advantage that SONAR has over any other music-sequencing product I ve worked

Security of Bluetooth: An overview of Bluetooth Security

Schema for the DCE Security Registry Server

Outline. CSCI 4730 Operating Systems. Questions. What is an Operating System? Computer System Layers. Computer System Layers

Architectural styles for software systems The client-server style

. Written in factored form it is easy to see that the roots are 2, 2, i,

1 Enterprise Modeler

Morgan Kaufmann Publishers 26 February, COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface. Chapter 5

Computers and Scientific Thinking

BEA WebLogic Enterprise. Using the WebLogic EJB Deployer

Session Initiated Protocol (SIP) and Message-based Load Balancing (MBLB)

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

K-NET bus. When several turrets are connected to the K-Bus, the structure of the system is as showns

Chapter 11. Friends, Overloaded Operators, and Arrays in Classes. Copyright 2014 Pearson Addison-Wesley. All rights reserved.

Custodial Integrator Automation Guide

Evaluation scheme for Tracking in AMI

Introduction to Wireless & Mobile Systems. Chapter 6. Multiple Radio Access Cengage Learning Engineering. All Rights Reserved.

6.854J / J Advanced Algorithms Fall 2008

Appendix D. Controller Implementation

IMP: Superposer Integrated Morphometrics Package Superposition Tool

BEA Tuxedo. Using the BEA Tuxedo System on Windows NT

BEA Tuxedo. Using the CORBA Name Service

Chapter 4. Procedural Abstraction and Functions That Return a Value. Copyright 2015 Pearson Education, Ltd.. All rights reserved.

Adapter for Mainframe

ICS Regent. Communications Modules. Module Operation. RS-232, RS-422 and RS-485 (T3150A) PD-6002

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Course Site: Copyright 2012, Elsevier Inc. All rights reserved.

Structuring Redundancy for Fault Tolerance. CSE 598D: Fault Tolerant Software

BAAN IVc/BaanERP. Conversion Guide Oracle7 to Oracle8

Analysis Metrics. Intro to Algorithm Analysis. Slides. 12. Alg Analysis. 12. Alg Analysis

Task scenarios Outline. Scenarios in Knowledge Extraction. Proposed Framework for Scenario to Design Diagram Transformation

L5355 Modbus Plus Communications Interface

BEA WebLogic Process Integrator

Chapter 1. Introduction to Computers and C++ Programming. Copyright 2015 Pearson Education, Ltd.. All rights reserved.

Lazy Type Changes in Object-oriented Database. Shan Ming Woo and Barbara Liskov MIT Lab. for Computer Science December 1999

CSC 220: Computer Organization Unit 11 Basic Computer Organization and Design

UNIVERSITY OF MORATUWA

EDICOM has an undertaking with clients to comply with three key variables that guarantee the service quality:

A Reservation-Based Extended Transaction Protocol

Multi-Threading. Hyper-, Multi-, and Simultaneous Thread Execution

Oracle Server. What s New in this Release? Release Notes

Customer Portal Quick Reference User Guide

CIS 121 Data Structures and Algorithms with Java Spring Stacks and Queues Monday, February 12 / Tuesday, February 13

COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface. Chapter 4. The Processor. Part A Datapath Design

Weston Anniversary Fund

Algorithms for Disk Covering Problems with the Most Points

Term Project Report. This component works to detect gesture from the patient as a sign of emergency message and send it to the emergency manager.

The University of Adelaide, School of Computer Science 22 November Computer Architecture. A Quantitative Approach, Sixth Edition.

Performance Plus Software Parameter Definitions

COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface. Chapter 4. The Processor Advanced Issues

BEA Tuxedo. Creating CORBA Server Applications

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 13 Control and Sequencing: Hardwired and Microprogrammed Control

The CCITT Communication Protocol for Videophone Teleconferencing Equipment

Guide to Applying Online

Lecture 28: Data Link Layer

Chapter 5. Functions for All Subtasks. Copyright 2015 Pearson Education, Ltd.. All rights reserved.

Review: The ACID properties

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

n Explore virtualization concepts n Become familiar with cloud concepts

Using the Keyboard. Using the Wireless Keyboard. > Using the Keyboard

Programming with Shared Memory PART II. HPC Spring 2017 Prof. Robert van Engelen

Python Programming: An Introduction to Computer Science

Baan Finance Financial Statements

WYSE Academic Challenge Sectional Computer Science 2005 SOLUTION SET

MOTIF XF Extension Owner s Manual

Fujitsu LifeBook C Series

BAAN IV. BAAN IV Installation Manual for DB2 on Windows NT

Graphs. Minimum Spanning Trees. Slides by Rose Hoberman (CMU)

Code Review Defects. Authors: Mika V. Mäntylä and Casper Lassenius Original version: 4 Sep, 2007 Made available online: 24 April, 2013

Improvement of the Orthogonal Code Convolution Capabilities Using FPGA Implementation

GE FUNDAMENTALS OF COMPUTING AND PROGRAMMING UNIT III

Software development of components for complex signal analysis on the example of adaptive recursive estimation methods.

Reliable Transmission. Spring 2018 CS 438 Staff - University of Illinois 1

6053/6055 Modbus Plus Communications Interface

TRANSACTION MANAGEMENT [CH 16]

IXS-6600-C IXS-6700-C

System Overview. Hardware Concept. s Introduction to the Features of MicroAutoBox t

Getting Started. Getting Started - 1

BE Software Upgrades to ITALYCS 5. It s in the. Software

System and Software Architecture Description (SSAD)

BGP Attributes and Path Selection. ISP Training Workshops

LifeBook P Series Notebook BIOS BIOS SETUP UTILITY

Transcription:

Su Microsystems, Ic. 2550 Garcia Aveue Moutai View, CA 94045 415 960-1300 X3T10/95-229, Revisio 0 April 18, 1998 % Su Logo for Joh Lohmeyer Chairperso, X3T10 Symbios Logic Ic. 1635 Aeroplaza Drive Colorado Sprigs, Colorado 80916 Subject:Proposal for Persistet Reservatio The followig proposal has bee extracted from work by Bill Dallas of DEC, Roger Cummigs of Storage Techology, ad may others. The proposal exteds the defiitio of reservatios to allow proper behavior i multi-iitiator ad multi-port eviromets. The proposal defies persistet reservatios which remai valid across Target Reset ad ca oly be cleared by power dow or by a properly qualified persistet reservatio from aother iitiator. Usig the commads defied by this proposal, a host ca protect the logical uit from improper behavior caused by aother iitiator o the same or other ports. At the same time, the host ca determie from a logical uit which iitiators share the logical uit, which iitiator is presetly reservig the logical uit, ad ca choose to displace the reservatio of a iitiator which is kow to have failed. Sicerely, Robert N. Sively Su Microsystems Mail Stop MPK 12-204 2550 Garcia Ave. Moutai View, CA 94043-1100 phoe: 415-786-6694 e-mail:bob.sively@su.com

X3T10/95-229, Revisio 0 Persistet Reservatio Proposal Descriptio of fuctio / Persistet Reservatio model: Two ew commads are defied i SPC, PERSISTENT RESERVE IN (PRIN) ad PERSISTENT RESERVE OUT (PROUT). The commads are used to create ad release persistet reservatios (icludig logical uit or Extet reservatios), to provide reservatio keys to logical uits, ad to force actios o tasks from other iitiators. The PRIN ad PROUT commads have the followig capabilities, may of which are optioal: Create persistet reservatios usig PROUT. Extet (shared reservatios defied) Exclusive logical uit Shared logical uit (shared reservatios defied) Release persistet reservatios usig PROUT. Register a 8-byte Reservatio Key for the sourcig iitiator with the attached device usig PROUT. Determie the preset reservatio's key ad characteristics usig PRIN. Determie the key of other iitiators that are attached to the peripheral device usig PRIN. Preempt a reservatio with aother iitiator with ew reservatio from this usig PROUT. Optioally automatically clear all tasks related with the preempted reservatio. Geerate a 32-bit umber icreasig with each reservatio to war of iterveig actios. A persistet reservatio is formed betwee a iitiator ad a logical uit whe the PROUT commad cotaiig the parameters requestig a persistet reservatio is successfully executed. The parameters idicate the type of reservatio that is formed. I additio, the parameters cotai a 8-byte reservatio key that is used by the target ad by software o other iitiators to idetify the iitiator holdig the reservatio. The persistet reservatio caot be released by a Target Reset, other reset activity, or by a RELEASE commad. It ca be released oly by a PROUT from the same iitiator cotaiig the release parameters, by a power off, or by a PROUT from aother iitiator cotaiig the proper preemptive reservatio parameters ad the reservatio key of the iitiator holdig the reservatio. While the persistet reservatio is active, ay coflictig persistet reservatio or activity that coflicts with the reservatio is rejected with RESERVATION CONFLICT status. This behavior allows ay cooperatig iitiators havig access to the logical uit ay port to execute carefully maaged reservatio protocols that will allow the logical uit to be safely shared amog them. The reservatio is safe from iterruptio by ay iitiators ot participatig i the persistet reservatio protocol, eve durig bootig ad error recovery operatios. The use of a reservatio key as part of the reservatio process eables iitiators to idetify other ports holdig reservatios or sharig the logical uit. Hosts use the reservatio key to perform lockig ad failover recovery operatios. The commuicatio for such algorithms is usually a auxiliary port such as Etheret or Fibre Chael. Targets with reservatios held by failig hosts ca be idetified ad preemptively reserved by hosts that are still PAGE 2 OF 20

X3T10/95-229, Revisio 0 operatioal. Whe preemptive reservatios are performed, the reservig iitiator ca optioally ivoke a automatic clearig of all tasks for the iitiator port that is beig preempted. The structure of PROUT favors the geeratio of a sigle reservatio for each PROUT commad. Alterative implemetatios are discussed at the ed of this proposal. The reservatio key of other ports that have previously geerated persistet reservatios ca be obtaied from the logical uit to allow each iitiator to moitor which iitiator ports have participated i the sharig process. The programmig covetios typically used with RESERVE ad RELEASE may coflict with the programmig covetios that are used with PROUT ad PRIN. Operatig systems should oly use oe of the two reservatio commad sets at a time with a logical uit. Modificatios required to SPC to implemet persistet reservatio: 1) Provide additioal descriptio i sectio 5.3 of SPC Sectio 5.3 ad 5.3.1 should be rewritte as follows: 5.3 Reservatios Various types of reservatio commads ca be used to prohibit or restrict the executio of certai commads to a logical uit or a portio of the logical uit. Usig these reservatio commads, applicatio cliets ca cooperate to protect shared data from accidetal modificatio. If the applicatio cliets do ot cooperate i the executio of a reservatio protocol, data may be uexpectedly modified ad deadlock coditios may occur. Two types of reservatio commads are defied. The opersistet reservatio commads, RESERVE(6), RESERVE(10), RELEASE(6), ad RELEASE(10) are used amog multiple iitiators that do ot require operatios to be protected across iitiator failures. The reservatios created by such commads iclude reservatios for the etire logical uit or for a extet of the logical uit. Extet reservatios may place restrictios oly upo certai types of commads. The reservatios may also be made restrictig access to the device to a differet iitiator, usually a temporary iitiator performig a service for the reservig iitiator. The reservatios do ot persist across some recovery actios, so most systems usig opersistet reservatios require sigificat reiitializatio after a failure. Reservatios are retaied by the logical uit util released or util reset by mechaisms specified i this stadard. The persistet reservatio commads, PERSISTENT RESERVE IN ad PERSISTENT RESERVE OUT, are used amog multiple iitiators that do require operatios to be protected across iitiator failures. The reservatios created by such commads iclude reservatios for the etire logical uit or for a extet of the logical uit. Both extet ad logical uit reservatios may place restrictios oly o certai types of commads. The reservatios do persist across recovery actios, so that recovery ca be maaged without requirig complete reiitializatio of the system. Reservatios for failig iitiators ca be preempted by a iitiator as part of the PAGE 3 OF 20

X3T10/95-229, Revisio 0 recovery process. Reservatios are retaied by the logical uit util released or util reset by mechaisms specified i this stadard. Because a device server caot differetiate amog differet applicatio cliets ruig o a iitiator, all applicatio cliets o the iitiator have the same access restrictios. Whe multiple applicatio cliets are accessig a sigle device server from oe iitiator, the applicatio cliets shall coordiate reservatios. The clause defiig each commad s operatios shall cotai a descriptio of how that commad is affected by reservatios. The commad may be allowed to execute or it may be preveted from executio. If the commad is preveted from executio, the commad is said to coflict with the reservatio ad the logical uit shall preset a status of RESERVATION CONFLICT. Commads that read or write to the storage medium or to storage caches shall obey the rules defied i the clauses describig the RESERVE commad ad the PERSISTENT RESERVE OUT commad. Commads that retrieve or alter iformatio about the device server s operatig state shall coflict with logical uit reservatios uless otherwise specified. Commads that alter iformatio about the device server s operatig state shall coflict, uless otherwise specified, with extet reservatios uless the logical uit maitais separate state iformatio for each iitiator. The INQUIRY ad REQUEST SENSE commads shall ot be affected by ay kid of reservatio. The RESERVE(6) ad RESERVE(10) commads allow supercedig reservatios ad shall be executed eve whe opersistet reservatios are preset from the same iitiator. The RELEASE(6) ad RELEASE(10) commads shall be executed for the reservig iitiator eve whe opersistet reservatios are preset. The executio of a RESERVE(6) or a RESERVE(10) commad coflicts with a persistet reservatio. The executio of a PERSISTENT RESERVE OUT commad with a Reserve, Release, Preempt, or Preempt ad Clear actio coflicts with a opersistet reservatio. 2) Replace sectio 5.4 of SPC cocerig Dual Port behavior The etire clause etitled Dual Port behavior should be replaced with the followig text: 5.4 Multiple port ad multiple iitiator behavior The SCSI Architectural Model, X3.XXX-19xx, specifies the behavior of logical uits beig accessed by more tha oe iitiator. Additioal ports to a logical uit provide alterate delivery paths which the device server ca be reached ad may also provide coectivity for additioal iitiators. A alterate path ca be used to improve the availability of drives i the presece of certai types of failures ad to improve the performace of drives whose other paths may be busy. If a logical uit has more tha oe SCSI iterface port, the arbitratio ad coectio maagemet amog the ports is implemetatio depedet. Two cotetio resolutio optios exist: PAGE 4 OF 20

X3T10/95-229, Revisio 0 1) If oe port to a logical uit is beig used by a iitiator, accesses attempted aother port may receive a status of BUSY. 2) If the logical uit has sufficiet iteral resources, the logical uit may accept actios other ports while oe port is beig used. The device server shall idicate the presece of multiple ports by settig the DualP bit to 1 i its stadard INQUIRY data. From a iitiator, each other iitiator attached to the logical uit has the same relatioship to the logical uit, whether the other iitiator accesses the logical uit the same or a differet port. Reservatios, persistet reservatios, ad task maagemet fuctios are performed betwee a sigle iitiator ad a sigle logical uit. The followig operatios are the oly operatios that allow a iitiator to iteract with the tasks of aother iitiator: PERSISTENT RESERVE OUT with Preempt actio removes persistet reservatios for aother iitiator. PERSISTENT RESERVE OUT with Preempt ad Clear actio removes persistet reservatios ad all tasks for aother iitiator. Task Maagemet fuctio of TARGET RESET removes opersistet reservatios ad removes all tasks for all iitiators. Persistet reservatios remai umodified. Task Maagemet fuctio of CLEAR TASK SET removes all tasks for all iitiators. Most other machie states remai umodified, icludig MODE SELECT PARAMETERS, persistet ad opersistet reservatios, ad auto cotiget allegiace. 3) Remove referece to the Port Status commad i Table 5 At preset, the refereced sectio etitled Port Status is ot icluded i revisio 6 of SPC. It should cotiue to be ot icluded ad should be removed from table 5, page 16. 4) Iclude PROUT ad PRIN commads i SPC: The PERSISTENT RESERVE OUT commad ad the PERSISTENT RESERVE IN commad will be icluded i table 5 as Z commads. The followig text will be added to SPC: N. PERSISTENT RESERVE OUT commad The PERSISTENT RESERVE OUT or PROUT commad (see Table 1) is used to reserve a logical uit or a extet withi a logical uit for the exclusive or shared use of a particular iitiator. The commad is used i cojuctio with the PERSISTENT RESERVE IN commad ad caot be used with the RESERVE ad RELEASE commads. Persistet reservatios coflict with reservatios established by the RESERVE commad. Iitiators performig PROUT actios are idetified by a reservatio key provided by the applicatio cliet. A applicatio cliet ca use the PRIN commad to idetify which applicatios are holdig coflictig or ivalid reservatios ad use the PROUT commad to preempt those reservatios if required. PAGE 5 OF 20

X3T10/95-229, Revisio 0 The PROUT ad PRIN commads provide the basic mechaism for dyamic cotetio resolutio i multiple-iitiator systems usig multiple port targets. The idetificatio of reservatios usig the reservatio key makes it possible to determie which ports hold coflictig reservatios ad to take over reservatios from failig or ucooperative iitiators. Table 1: PERSISTENT RESERVE OUT commad Bits Bytes 7 6 5 4 3 2 1 0 0 Operatio Code (TBD) 1 reserved Actio 2 Scope Type 3 reserved 4 reserved 5 reserved 6 reserved 7 8 Parameter Legth 9 Cotrol The PROUT commad cotais fields that specify a persistet reservatio actio, the iteded scope of the reservatio, ad the restrictios caused by the reservatio. Parameters cotaied i the PROUT Parameters specify the reservatio keys ad extet iformatio required to perform a particular persistet reservatio actio. The parameters are 24 bytes i legth ad the Parameter Legth field is required to have a value of 24. If the Parameter Legth is ot 24, a CHECK CONDITION is idicated with a ASC/ASCQ of Ivalid CDB. Sice persistet reservatios are ot reset by Target Reset or other global actios, they ca be used to eforce device sharig amog multiple iitiators. Commads from ay iitiator that coflict with a successfully established persistet reservatio are rejected with a status of RESERVATION CONFLICT. The followig commads ever coflict with a persistet reservatio: INQUIRY REQUEST SENSE PREVENT ALLOW MEDIUM REMOVAL (with a prevet bit of oe) PERSISTENT RESERVE IN PAGE 6 OF 20

X3T10/95-229, Revisio 0 PERSISTENT RESERVE OUT (with a actio of Preempt) PERSISTENT RESERVE OUT (with a actio of Preempt ad Clear) PERSISTENT RESERVE OUT (with a reservatio actio that does ot coflict with established persistet reservatios or tasks) Other commads coflict if they perform a operatio to the logical uit that violates either the scope or the type specified for a active persistet reservatio. Each commad of a set of liked commads is idividually examied for coflicts at the time the commad is received by the target. N..1 PROUT Reservatio Actios: The PROUT commad actios are show i Table 2. The parameters required for each actio are show i Table 6. Table 2: PERSISTENT RESERVE OUT Actio Actio Code (Hex) Actio Name Actio Descriptio 00 Register Register Reservatio Key with target 01 Reserve Create Persistet Reservatio usig Reservatio Key 02 Release Release Persistet Reservatio 03 (reserved) 04 Preempt Pre-empt Persistet Reservatio for other iitiator 05 Pre-empt ad Clear Persistet Reservatio ad Clear Task Set for preempted iitiator 06-1F (reserved) N..1.1 Register The PROUT commad executig a Register actio registers a reservatio key with a target without geeratig a reservatio. For each iitiator that performs a PROUT Register actio, the target retais the reservatio key util the key is chaged by a ocoflictig PROUT commad from the same iitiator that uses a differet key or util the key is reset by powerig dow the target. The Register actio ca be performed regardless of ay active persistet reservatios. All existig persistet reservatios for the iitiator receive the ew reservatio key. N..1.2 Reserve The PROUT commad performig a Reserve actio creates a persistet reservatio havig a specified scope ad type. The scope ad type of a persistet reservatio are defied below. For each iitiator that performs a PROUT Reserve actio, the target retais the reservatio key util PAGE 7 OF 20

X3T10/95-229, Revisio 0 the key is chaged by a PROUT commad from the same iitiator that uses a differet key, util the key is reset by powerig dow the target, or util the key is cleared by a Clear Key actio. A status of RESERVATION CONFLICT shall be geerated for a PROUT commad that specifies the executio of a Reserve actio that coflicts with ay active persistet reservatios from the same iitiator i scope, type, extet, or reservatio key. Persistet reservatios shall ot be superceded by a ew persistet reservatio from ay iitiator except by executio of a PROUT specifyig either the Preempt or Preempt ad Clear actio. New persistet reservatios that do ot coflict with a existig persistet reservatio shall be executed ormally. The reservatio of a logical uit or the reservatio of reserved extets havig the same type value is permitted if o coflictig persistet reservatios are held by aother iitiator. Whe such overlappig reservatios are released, each of the extet reservatios ad the logical uit reservatio shall be removed with a separate Release actio. A PROUT commad ot performig a Preempt or a Preempt ad Clear actio shall ot be performed ad shall be eded with status of RESERVATION CONFLICT if there are ay queued or active tasks from ay iitiator that would coflict with the reservatio to be established. N..1.3 Release The PROUT commad performig a Release actio removes a active persistet reservatio held by the same iitiator. The parameters associated with the Release actio must match the parameters of the active reservatio. It is ot a error to sed a PROUT specifyig a Release actio for a persistet reservatio that does ot exist. The reservatio key is ot chaged by the Release actio. A status of CHECK CONDITION ad a ASC/ASCQ of Ivalid Release of Active Persistet Reservatio shall be geerated for a PROUT commad that specifies the release of a persistet reservatio with a icorrect scope, reservatio key, or extet. A active persistet reservatio may also be released by either of the followig mechaisms: 1) Power off. 2) Executio of a PROUT commad from aother iitiator with a Persistet Reserve Actio of Preempt or Preempt ad Clear N..1.4 Preempt The PROUT commad performig a Preempt actio removes all reservatios for the iitiator specified by the PROUT parameter page. The iitiator is idetified by the reservatio key of the iitiator to be preempted. Ay commads from ay iitiator that have bee accepted by the logical uit as ocoflictig will cotiue ormal executio. A Uit Attetio coditio is established for the preempted iitiator. The first ew commad from the preempted iitiator shall preset CHECK CONDITION ad preset PAGE 8 OF 20

X3T10/95-229, Revisio 0 the Uit Attetio coditio with a ASC/ASCQ of Uit Attetio/Reservatios preempted. Subsequet commads are subject to the reservatio restrictios established by the preemptig iitiator. The persistet reservatio created by the preemptig iitiator is specified by the scope ad type field of the PROUT commad ad the correspodig parameters i the PROUT parameter page. N..1.5 Preempt ad Clear The PROUT commad performig a Preempt ad Clear actio removes all reservatios for the iitiator specified by the PROUT parameter page. The iitiator is idetified by the reservatio key of the iitiator to be preempted. Ay commads from the iitiator beig preempted are each termiated as if a ABORT TASK task maagemet fuctio had bee performed by the preempted iitiator. A Uit Attetio coditio is established for the preempted iitiator. The first ew commad from the preempted iitiator shall preset CHECK CONDITION ad preset the Uit Attetio coditio with a ASC/ASCQ of Uit Attetio/Reservatios preempted. Subsequet ew commads ad retries of commads that timed out because they were cleared are subject to the reservatio restrictios established by the preemptig iitiator. The persistet reservatio created by the preemptig iitiator is specified by the scope ad type field of the PROUT commad ad the correspodig parameters i the PROUT parameter page. N..2 PERSISTENT RESERVE OUT Scope The value i the Scope field idicates whether a persistet reservatio applies to a etire logical uit or to a portio of the logical uit defied as a extet. The values of the Scope field are defied i Table 3. Table 3: PERSISTENT RESERVE OUT Scope Code (Hex) Scope Name Scope Descriptio 0 LU The Persistet Reservatio Out is applied to the full logical uit. 1 Extet The Persistet Reservatio Out is applied to the specified extet. 2-F (reserved) N..2.1 LU PAGE 9 OF 20

X3T10/95-229, Revisio 0 A Scope field value of LU idicates that the persistet reservatio applies to the etire logical uit. N..2.2 Extet A Scope field value of Extet idicates that the persistet reservatio applies to the extet of the logical uit defied by the extet parameters i the PROUT parameter page. A extet is defied oly for devices defiig cotiguous logical block addresses. N..3 PERSISTENT RESERVE OUT Type The value i the Type field specifies the characteristics of the persistet reservatio beig established for all data blocks withi the extet or withi the logical uit. Table 4 describes the characteristics of the five differet type values. Table 4PERSISTENT RESERVE OUT Type Type Descriptio Code (Hex) Type Name Read Write Permitted Reservatios 0 Read Shared Shared Prohibited Nocoflictig, ay iitiator 1 Write Exclusive Shared Exclusive Nocoflictig, ay iitiator 2 Read Exclusive Exclusive Shared Nocoflictig, ay iitiator 3 Exclusive Access Exclusive Exclusive Nocoflictig, this iitiator 4 Shared Access Shared Shared Nocoflictig, this iitiator 5-F (reserved) N..3.1 Read If a type allows read commads to be shared, the ay iitiator ca execute commads that perform trasfers from the storage medium or cache of the logical uit to the PAGE 10 OF 20

X3T10/95-229, Revisio 0 iitiator. If a type requires read commads to be exclusive, the oly the reservig iitiator ca perform a trasfer from the storage medium or cache to the iitiator. Ay SCSI commads from aother iitiator that would create such a trasfer will receive status of RESERVATION CONFLICT. N..3.2 Write If a type allows write commads to be shared, the ay iitiator ca execute commads that perform trasfers from the iitiator to the storage medium or cache of the logical uit. If a type requires write commads to be exclusive, the oly the reservig iitiator ca perform a trasfer from the iitiator to the storage medium or cache of the logical uit. Ay SCSI commads from aother iitiator that would create such a trasfer will receive status of RESERVATION CONFLICT. If a type requires write commads to be prohibited, the ay commad from ay iitiator that would create such a trasfer will receive status of RESERVATION CONFLICT. N..3.3 Permitted Reservatios If a type allows ocoflictig reservatios from ay iitiator, the ay iitiator may geerate persistet reservatios to the same extet or logical uit as log as the characteristics are ot cotrary to the existig reservatios. Attempts to create coflictig reservatios will receive status of RESERVATION CONFLICT. If a type allows ocoflictig reservatios oly from the reservig iitiator, the all attempts by other iitiators to perform ay PROUT commad with the Reserve actio will receive status of RESERVATION CONFLICT. Attempts to create coflictig reservatios by the reservig iitiator will receive status of RESERVATION CONFLICT. N..4 PERSISTENT RESERVE OUT parameters The parameters required to perform the PROUT commad are defied i Table 5 ad i Table 7. Table 6 idicates which parameters are required for which Actio ad Scope value. The locatios for all parameter fields are always required to be trasmitted, eve if the parameter is ot required for the specified fuctio Table 5: PERSISTENT RESERVE OUT parameters Bit Fuctio of Byte Byte 7 6 5 4 3 2 1 0 0 23 PROUT parameter page PAGE 11 OF 20

X3T10/95-229, Revisio 0 Table 6: PERSISTENT RESERVE OUT: Allowed actios ad valid parameters Actio Allowed Scope Key for port performig PROUT Parameters Valid Key for port preempted by PROUT Extet LBA ad Extet Legth Register LU Valid N/A N/A Reserve LU Valid N/A N/A Reserve Extet Valid N/A Valid Release LU Valid N/A N/A Release Extet Valid N/A Valid Preempt LU Valid Valid N/A Preempt Extet Valid Valid Valid Preempt ad Clear LU Valid Valid N/A Preempt ad Clear Extet Valid Valid Valid N..4.1 Reservatio Key of iitiator performig commad The reservatio key is a 8-byte toke provided by the iitiator to the logical uit to idetify the source of the PROUT commad. N..4.2 Reservatio Key of iitiator beig preempted The reservatio key of the iitiator beig preempted is oly required for those PROUT actios that preempt aother iitiator s reservatios. This reservatio key matches the reservatio key of the persistet reservatio that is beig preempted. If it does ot match, the PROUT commad presets status of RESERVATION CONFLICT. N..4.3 Extet defiitio parameters The extet parameters are oly required for those PROUT actios that use a Scope value of Extet. The extet is defied by the 32-bit startig logical block address ad the 16-bit cout of logical blocks i the extet. PAGE 12 OF 20

X3T10/95-229, Revisio 0 Table 7: PERSISTENT RESERVE OUT parameter page Fuctio of Byte Bit Byte 7 6 5 4 3 2 1 0 0 7 Reservatio Key of iitiator performig commad 8 15 Reservatio Key of iitiator beig preempted 16-19 LBA of first block of extet 20 (reserved) 21 (reserved) 22-23 Extet Legth N.m PERSISTENT RESERVE IN commad The PERSISTENT RESERVE IN or PRIN commad (see Table 8) is used to obtai iformatio about reservatios ad reservatio keys that are active withi a logical uit. The commad is used i cojuctio with the PERSISTENT RESERVE OUT commad ad caot be used with the RESERVE ad RELEASE commads. The actual legth of the parameters that could be retured by the PRIN commad is defied withi the parameter list. The Parameter Legth field i the CDB idicates how much space has bee reserved for the retured parameter list. If the legth is ot sufficiet to cotai the etire parameter list, the first portio of the list is retured. If the remaider of the list is required, a ew PRIN commad with a Parameter Legth field large eough to cotai the etire list is executed. PAGE 13 OF 20

X3T10/95-229, Revisio 0 Table 8: PERSISTENT RESERVE IN commad Bits Bytes 7 6 5 4 3 2 1 0 0 Operatio Code (TBD) 1 reserved Actio 2 reserved 3 reserved 4 reserved 5 reserved 6 reserved 7 8 Parameter Legth 9 Cotrol N.m.1 PERSISTENT RESERVE IN actio codes The actio codes for the PRIN commad are defied i Table 9. Table 9: PERSISTENT RESERVE IN Actio Actio Code (Hex) Actio Name Actio Descriptio 00 Read Keys Reads all registered Reservatio Keys 01 Read Reservatios Reads all curret reservatios 02-1F (reserved) (reserved) N.m.1.1 Read Keys The Read Keys actio value requests that the logical uit retur a parameter list cotaiig a header ad a complete list of all reservatio keys that have bee passed to the logical uit from all iitiators. The keys may have bee passed by a PROUT commad that has performed a reserve actio, a register actio, or oe of the preempt actios. The reservatio keys do ot idicate what iitiator or port is associated with the key. That iformatio must be obtaied from other iitiators by mechaisms outside the scope of this stadard. PAGE 14 OF 20

X3T10/95-229, Revisio 0 N.m.1.2 Read Reservatios The Read Reservatios actio value requests that the logical uit retur a parameter list cotaiig a header ad a complete list of all reservatios that are presetly active o the logical uit ad its extets. N.m.2 PERSISTENT RESERVE IN parameters for Read Keys The format for the parameters provided i respose to a PRIN commad with the Read Keys actio is show i Table 10. Table 10: PERSISTENT RESERVE IN parameters for Read Keys Fuctio of Byte Byte Bit 7 6 5 4 3 2 1 0 0 3 Geeratio 4 7 Additioal legth of parameter field 8 15 Zeroth Reservatio Key 8+8 15+8 Nth Reservatio Key N.m.2.1 Geeratio The Geeratio value is a 32-bit couter i the logical uit that is icremeted every time a PROUT commad requests a Reserve, a Preempt, or a Preempt ad Clear operatio. The couter is ot icremeted by a PRIN commad, by a PROUT commad that performs a Register or Release actio, or by a PROUT commad that is ot performed due to a error or reservatio coflict. The Geeratio value allows a iitiator to verify that reservatios have ot bee updated i the logical uit without the kowledge of the iitiator. N.m.2.2 Additioal Legth This field cotais a cout of the umber of bytes i the reservatio key list. The total umber of bytes available i a particular PRIN commad is 8 more tha the value i the PAGE 15 OF 20

X3T10/95-229, Revisio 0 Additioal Legth field. If the Parameter Legth specified by the PRIN commad is ot sufficiet to cotai the etire parameter list, the oly the bytes from 0 to the maximum allowed Parameter Legth are trasmitted to the iitiator. The remaiig bytes are trucated, although the Additioal Legth field still cotais the umber of bytes i the reservatio key list that would have bee trasmitted. I the case of such a trucatio, CHECK CONDITION status with sese iformatio of icorrect legth is provided. N.m.2.3 Reservatio Key list This list cotais all the 8-byte reservatio keys kow to the logical uit PROUT Reserve, Preempt, Preempt ad Clear, or Register actios. Each reservatio key may be examied by the host system ad correlated with a particular iitiator ad SCSI port by mechaisms outside the scope of this stadard. N.m.3 PERSISTENT RESERVE IN parameters for Read Reservatios The format for the parameters provided i respose to a PRIN commad with the Read Reservatios actio is show i Table 11. Table 11: PERSISTENT RESERVE IN parameters for Read Reservatios Fuctio of Byte Byte Bit 7 6 5 4 3 2 1 0 0 3 Geeratio 4 7 Additioal legth of parameter field 8 23 Zeroth Read Reservatio Page 8+16 23+16 Nth Read Reservatio Page The Geeratio field ad Additioal Legth fields are defied exactly the same as the fields for the parameters for the Read Keys actio. The read reservatio pages are defied i Table 12. There is oe read reservatio page for each reservatio held o the logical uit by ay iitiator. PAGE 16 OF 20

X3T10/95-229, Revisio 0 Table 12: PERSISTENT RESERVE IN Read Reservatio Page Fuctio of Byte Byte Bit 7 6 5 4 3 2 1 0 0 7 Reservatio Key of port holdig reservatio 8 11 LBA of first block of Extet 12 (reserved) 13 Scope Type 14 15 Extet Legth N.m.3.1 Read Reservatio Page parameters For each reservatio held o the logical uit, there shall be a Read Reservatio page preseted i the list of parameters retured by the logical uit to the PRIN commad with a Read Reservatios actio. The page cotais the reservatio key of the iitiator holdig the reservatio. The type ad scope of the reservatio are also defied. If the scope is a Extet reservatio, the the LBA of the first block of the extet ad the extet legth parameters are valid. If the scope is a Logical Uit reservatio, the bytes 8 11, 14, ad 15 are set to 0. New ASC/ASCQ defiitios required: The followig ew ASC/ASCQ idicatios are required to preset error iformatio associated with persistet reservatios: Ivalid Release of Active Persistet Reservatio Ivalid Parameter (offered whe more tha oe parameter page is specified by PROUT Preempt). Uit Attetio/Reservatios Preempted Icorrect Legth (offered whe Parameter Legth is too short for PRIN parameter lists.) Ivalid CDB (offered whe Parameter Legth is ot = 24 i PROUT) PAGE 17 OF 20

X3T10/95-229, Revisio 0 Proposed text chages to SBC, SSC, ad SCC The PERSISTENT RESERVE IN ad PERSISTENT RESERVE OUT commads shall be icluded i the itroductory commad maps for all three commad sets. Those commads ad the RESERVE(6), RESERVE(10), RELEASE(6), ad RELEASE(10) shall be marked as X (for exclusive madatory) istead of M. A ote shall idicate that at least oe of the followig sets of commads is madatory: RESERVE(6), RELEASE(6) PERSISTENT RESERVE IN, PERSISTENT RESERVE OUT The ote shall further idicate that techologies usig exteded logical uit addresses shall implemet at least oe of the followig sets of commads as madatory: RESERVE(10), RELEASE(10) PERSISTENT RESERVE IN, PERSISTENT RESERVE OUT Noe. Proposed text chages to other SCSI-3 documets: Arbitrary decisios made developig this documet, please review: 1) Sigle key per iitiator The defiitio of persistet reservatio at preset uses a sigle key for each iitiator. The defiitio could use a sigle key for each reservatio, but that would sigificatly icrease the space required for keys i the logical uit. The use of multiple keys for a iitiator holdig multiple persistet reservatios does ot appear to add ay useful fuctio. 2) Modificatio of key The key is presetly specified as beig modifiable durig persistet reservatios by the Register actio. The key is ot modifiable durig the executio of additioal reservatios or overlappig reservatios to a logical uit. Ivalid keys durig Reserve actios are RESERVATION CONFLICTS. PAGE 18 OF 20

X3T10/95-229, Revisio 0 3) Maagemet of queued tasks Queued tasks from ay iitiator cotiue ormally if a PROUT with a Preempt commad is executed. The assumptio is that they have bee accepted as ocoflictig ad if you really wated to kill them off, you would do so with a Preempt ad Clear. However, a Reserve actio ca oly be performed if there are o coflictig queued tasks. The assumptio is that the iitiators are cooperatig ad have agreed upo the reservatios to be performed i such a maer that ay coflicts are errors. Note that this may require targets to do a lot of task ispectio to see if a coflict exists. For a Preempt ad Clear commad, oly those queued tasks for the specified iitiator are cleared. Other queued tasks complete ormally. Note that this allows the creatio of coflictig tasks that will be completed ormally, ulike the Reserve actio. No ew coflictig tasks are accepted. 4 Commad likig It is assumed that each commad of a liked set of commads will be checked for coflicts idepedetly, i spite of the fact that they are omially all part of the same task. This is ecessary because the iitial commad may be ocoflictig, but subsequet commads coflictig. This is also true for the completio of commads that have ot yet bee queued but are part of a o goig task durig preemptio. 5) Number of reservatios per PROUT At preset, the documet specifies oe reservatio per PROUT. This is a requiremet for all commads except PROUT with the Reserve actio, so it seemed atural to make the same restrictio for that case as well. Theoretically, multiple extets could be reserved at the same time, but the Scope ad Type parameters are presetly i the commad, so all reservatios would have to be idetical except for extet. I additio, all reservatio keys would have to be idetical. For ow, oly oe reservatio at a time ca be performed. 6) Reservatio established by preemptig iitiator There is o mechaism to preempt a iitiator s reservatios without establishig a reservatio of some kid with the preemptig iitiator. A ull reservatio scope could be established to allow preemptio without such a ew reservatio, but this does ot seem to be a useful fuctio. 7) Target Reset As presetly defied i SAM, TARGET RESET ad CLEAR TASK SET clear all tasks for all iitiators. This proposal retais that property ad icludes that defiitio i the proposed modificatios to clause 5.4 of SPC. Some proposals have suggested that TARGET RESET should oly reset the tasks for the iitiator that geerated the task maagemet fuctio. Uless the committee directs otherwise, I propose that we leave the defiitios uchaged ad PAGE 19 OF 20

X3T10/95-229, Revisio 0 accept the clear uderstadig that TARGET RESET will mess up all iitiators ad should ot be used. At least it will ot clear persistet reservatios. 8) Reservatio Coflicts At preset, it appears that a RESERVE(6) or RESERVE(10) commad does ot coflict with a reservatio from aother iitiator. I believe it should be required to coflict for all logical uit reservatios by aother iitiator ad should be required to coflict for overlappig ad icosistet extet reservatios by aother iitiator. This will require modificatio to clause 5.3 ad to the defiitios of the RESERVE commads. PAGE 20 OF 20