<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:v =
"urn:schemas-microsoft-com:vml" xmlns:o =
"urn:schemas-microsoft-com:office:office" xmlns:w =
"urn:schemas-microsoft-com:office:word" xmlns:m =
"http://schemas.microsoft.com/office/2004/12/omml"><HEAD>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=ProgId content=Word.Document>
<META name=GENERATOR content="MSHTML 8.00.6001.19170">
<META name=Originator content="Microsoft Word 14"><LINK rel=File-List
href="cid:filelist.xml@01CCD6AC.4EDE4410"><LINK rel=Edit-Time-Data
href="cid:editdata.mso"><!--[if !mso]>
<STYLE>v\:* {
BEHAVIOR: url(#default#VML)
}
o\:* {
BEHAVIOR: url(#default#VML)
}
w\:* {
BEHAVIOR: url(#default#VML)
}
.shape {
BEHAVIOR: url(#default#VML)
}
</STYLE>
<![endif]--><!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
<o:DoNotRelyOnCSS/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:Zoom>113</w:Zoom>
<w:SpellingState>Clean</w:SpellingState>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:EnvelopeVis/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:DoNotExpandShiftReturn/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<STYLE>@font-face {
font-family: Wingdings;
}
@font-face {
font-family: Wingdings;
}
@font-face {
font-family: Calibri;
}
@font-face {
font-family: Tahoma;
}
@page WordSection1 {size: 8.5in 11.0in; margin: 1.0in 1.0in 1.0in 1.0in; mso-header-margin: .5in; mso-footer-margin: .5in; mso-paper-source: 0; }
P.MsoNormal {
MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt; mso-bidi-font-family: "Times New Roman"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri
}
LI.MsoNormal {
MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt; mso-bidi-font-family: "Times New Roman"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri
}
DIV.MsoNormal {
MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt; mso-bidi-font-family: "Times New Roman"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri
}
A:link {
COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99; text-underline: single
}
SPAN.MsoHyperlink {
COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99; text-underline: single
}
A:visited {
COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99; text-underline: single; mso-style-noshow: yes
}
SPAN.MsoHyperlinkFollowed {
COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99; text-underline: single; mso-style-noshow: yes
}
P {
FONT-FAMILY: "Times New Roman","serif"; MARGIN-LEFT: 0in; FONT-SIZE: 12pt; MARGIN-RIGHT: 0in; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri; mso-style-priority: 99; mso-style-noshow: yes; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto
}
P.MsoAcetate {
MARGIN: 0in 0in 0pt; FONT-FAMILY: "Tahoma","sans-serif"; FONT-SIZE: 8pt; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri; mso-style-priority: 99; mso-style-noshow: yes; mso-style-link: "Balloon Text Char"
}
LI.MsoAcetate {
MARGIN: 0in 0in 0pt; FONT-FAMILY: "Tahoma","sans-serif"; FONT-SIZE: 8pt; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri; mso-style-priority: 99; mso-style-noshow: yes; mso-style-link: "Balloon Text Char"
}
DIV.MsoAcetate {
MARGIN: 0in 0in 0pt; FONT-FAMILY: "Tahoma","sans-serif"; FONT-SIZE: 8pt; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri; mso-style-priority: 99; mso-style-noshow: yes; mso-style-link: "Balloon Text Char"
}
P.MsoListParagraph {
MARGIN: 0in 0in 0pt 0.5in; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt; mso-bidi-font-family: "Times New Roman"; mso-style-unhide: no; mso-style-qformat: yes; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri; mso-style-priority: 34; mso-style-noshow: yes
}
LI.MsoListParagraph {
MARGIN: 0in 0in 0pt 0.5in; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt; mso-bidi-font-family: "Times New Roman"; mso-style-unhide: no; mso-style-qformat: yes; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri; mso-style-priority: 34; mso-style-noshow: yes
}
DIV.MsoListParagraph {
MARGIN: 0in 0in 0pt 0.5in; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt; mso-bidi-font-family: "Times New Roman"; mso-style-unhide: no; mso-style-qformat: yes; mso-pagination: widow-orphan; mso-fareast-font-family: Calibri; mso-style-priority: 34; mso-style-noshow: yes
}
SPAN.BalloonTextChar {
FONT-FAMILY: "Tahoma","sans-serif"; mso-bidi-font-family: Tahoma; mso-style-unhide: no; mso-style-priority: 99; mso-style-noshow: yes; mso-style-link: "Balloon Text"; mso-style-name: "Balloon Text Char"; mso-style-locked: yes; mso-ansi-font-size: 8.0pt; mso-bidi-font-size: 8.0pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma
}
SPAN.EmailStyle21 {
FONT-STYLE: normal; FONT-FAMILY: "Calibri","sans-serif"; COLOR: windowtext; FONT-WEIGHT: normal; TEXT-DECORATION: none; mso-bidi-font-family: Calibri; mso-style-unhide: no; text-underline: none; mso-style-noshow: yes; mso-ansi-font-size: 10.0pt; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-style-type: personal; mso-text-animation: none; text-line-through: none
}
SPAN.messagesmall1 {
FONT-FAMILY: "Times New Roman","serif"; mso-bidi-font-family: "Times New Roman"; mso-style-unhide: no; mso-style-name: messagesmall1; mso-ansi-font-size: 4.5pt; mso-bidi-font-size: 4.5pt; mso-ascii-font-family: "Times New Roman"; mso-hansi-font-family: "Times New Roman"
}
SPAN.EmailStyle23 {
FONT-STYLE: normal; FONT-FAMILY: "Calibri","sans-serif"; COLOR: #1f497d; FONT-WEIGHT: normal; TEXT-DECORATION: none; mso-bidi-font-family: Calibri; mso-style-unhide: no; text-underline: none; mso-style-noshow: yes; mso-ansi-font-size: 10.0pt; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-style-type: personal; mso-text-animation: none; text-line-through: none
}
SPAN.EmailStyle24 {
FONT-STYLE: normal; FONT-FAMILY: "Calibri","sans-serif"; COLOR: #1f497d; FONT-WEIGHT: normal; TEXT-DECORATION: none; mso-bidi-font-family: Calibri; mso-style-unhide: no; text-underline: none; mso-style-noshow: yes; mso-ansi-font-size: 10.0pt; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-style-type: personal; mso-text-animation: none; text-line-through: none
}
SPAN.EmailStyle25 {
FONT-STYLE: normal; FONT-FAMILY: "Calibri","sans-serif"; COLOR: #1f497d; FONT-WEIGHT: normal; TEXT-DECORATION: none; mso-bidi-font-family: Calibri; mso-style-unhide: no; text-underline: none; mso-style-noshow: yes; mso-ansi-font-size: 10.0pt; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-style-type: personal-reply; text-line-through: none
}
SPAN.SpellE {
mso-style-name: ""; mso-spl-e: yes
}
.MsoChpDefault {
FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-ansi-font-size: 10.0pt; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-style-type: export-only; mso-default-props: yes
}
DIV.WordSection1 {
page: WordSection1
}
</STYLE>
<!--[if gte mso 10]><style>/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Calibri","sans-serif";}
</style><![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></HEAD>
<BODY style="tab-interval: .5in" lang=EN-US link=blue vLink=purple>
<DIV dir=ltr align=left><SPAN class=604572420-19012012><FONT color=#0000ff
size=2 face=Arial>Thanks a lot, Paul.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=604572420-19012012><FONT color=#0000ff
size=2 face=Arial>I am in the middle of wrapping Format NVM codes up. Could you
please modify it when you have chance?</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=604572420-19012012><FONT color=#0000ff
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=604572420-19012012><FONT color=#0000ff
size=2 face=Arial>Alex</FONT></SPAN>
<HR tabIndex=-1>
<FONT size=2 face=Tahoma><B>From:</B> Luse, Paul E
[mailto:paul.e.luse@intel.com] <BR><B>Sent:</B> Thursday, January 19, 2012 12:15
PM<BR><B>To:</B> Chang, Alex; nvmewin@lists.openfabrics.org<BR><B>Subject:</B>
RE: ProcessIO Function<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV class=WordSection1>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">Yes,
that’s what I meant below in my last sentence, we need to complete to storport
in both of those cases and use SRB_STATUS_ERROR for those cases.<SPAN
style="mso-spacerun: yes"> </SPAN>If you want to implement this that’d be
great (maybe just have one storport completion at the bottom of the function and
set the error in earlier places; to avoid <SPAN class=SpellE>goto</SPAN> please
use try/finally in this routine.<SPAN style="mso-spacerun: yes"> </SPAN>Or
if you want to focus on the <SPAN class=SpellE>formatNVM</SPAN> I’ll clean this
up as well as check the callers for <SPAN class=SpellE>mis</SPAN>-use of
procession failures.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">Thx<BR>Paul<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<DIV>
<DIV
style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<P class=MsoNormal><B><FONT size=2 face=Tahoma><SPAN
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt; FONT-WEIGHT: bold; mso-fareast-font-family: 'Times New Roman'">From:</SPAN></FONT></B><FONT
size=2 face=Tahoma><SPAN
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'">
Chang, Alex [mailto:Alex.Chang@idt.com] <BR><B><SPAN
style="FONT-WEIGHT: bold">Sent:</SPAN></B> Thursday, January 19, 2012 12:58
PM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> Luse, Paul E;
nvmewin@lists.openfabrics.org<BR><B><SPAN
style="FONT-WEIGHT: bold">Subject:</SPAN></B> RE: ProcessIO
Function<o:p></o:p></SPAN></FONT></P></DIV></DIV>
<P class=MsoNormal><FONT size=2 face=Calibri><SPAN
style="FONT-SIZE: 11pt"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Yes, I'd
agree make it as simple as possible. However, there are two places in ProcessIo
returning FALSE without calling StorPortNotification to complete the
request:</SPAN></FONT><FONT size=3 face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Failure
on calling storportGetCurrentProcessorNumber.</SPAN></FONT><FONT size=3
face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Failure
on calling NVMeMapCore2Queue.</SPAN></FONT><FONT size=3
face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">We
should complete the request when either one happens?</SPAN></FONT><FONT size=3
face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"> <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Thanks,</SPAN></FONT><FONT
size=3 face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Alex</SPAN></FONT><FONT
size=3 face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P>
<DIV style="TEXT-ALIGN: center" class=MsoNormal align=center><FONT size=3
face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt">
<HR align=center SIZE=3 width="100%">
</SPAN></FONT></DIV>
<P style="MARGIN-BOTTOM: 12pt; mso-outline-level: 1" class=MsoNormal><B><FONT
size=2 face=Tahoma><SPAN
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt; FONT-WEIGHT: bold">From:</SPAN></FONT></B><FONT
size=2 face=Tahoma><SPAN
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt"> Luse, Paul E <A
href="mailto:[mailto:paul.e.luse@intel.com]">[mailto:paul.e.luse@intel.com]</A>
<BR><B><SPAN style="FONT-WEIGHT: bold">Sent:</SPAN></B> Thursday, January 19,
2012 11:46 AM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> Chang, Alex;
<A
href="mailto:nvmewin@lists.openfabrics.org">nvmewin@lists.openfabrics.org</A><BR><B><SPAN
style="FONT-WEIGHT: bold">Subject:</SPAN></B> RE: ProcessIO
Function</SPAN></FONT><FONT size=3 face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">Ahh, OK
thanks.<SPAN style="mso-spacerun: yes"> </SPAN>I’d prefer we simply have
it by rule:<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P style="TEXT-INDENT: -0.25in" class=MsoListParagraph><FONT color=#1f497d
size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">-</SPAN></FONT><FONT
color=#1f497d size=1 face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; COLOR: #1f497d; FONT-SIZE: 7pt">
</SPAN></FONT><FONT color=#1f497d size=2><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">If
process IO fails then the IO is complete to storport (if it had an SRB) with the
appropriate status<o:p></o:p></SPAN></FONT></P>
<P style="TEXT-INDENT: -0.25in" class=MsoListParagraph><FONT color=#1f497d
size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">-</SPAN></FONT><FONT
color=#1f497d size=1 face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; COLOR: #1f497d; FONT-SIZE: 7pt">
</SPAN></FONT><FONT color=#1f497d size=2><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">If
process IO succeeds then the IO is in flight<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">If we add
this flag then we also have to change the return value for process IO so the
caller know why it failed so it can return the IO, if needed to storport.<SPAN
style="mso-spacerun: yes"> </SPAN>No point in having every caller
implement code for ‘return status busy’ when it can be done in one central
location where the error happens. Make sense?<SPAN
style="mso-spacerun: yes"> </SPAN><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">Thx<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">Paul<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<DIV>
<DIV
style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<P style="mso-outline-level: 1" class=MsoNormal><B><FONT size=2
face=Tahoma><SPAN
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt; FONT-WEIGHT: bold; mso-fareast-font-family: 'Times New Roman'">From:</SPAN></FONT></B><FONT
size=2 face=Tahoma><SPAN
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'">
Chang, Alex <A
href="mailto:[mailto:Alex.Chang@idt.com]">[mailto:Alex.Chang@idt.com]</A>
<BR><B><SPAN style="FONT-WEIGHT: bold">Sent:</SPAN></B> Thursday, January 19,
2012 12:27 PM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> Luse, Paul E;
<A
href="mailto:nvmewin@lists.openfabrics.org">nvmewin@lists.openfabrics.org</A><BR><B><SPAN
style="FONT-WEIGHT: bold">Subject:</SPAN></B> RE: ProcessIO
Function<o:p></o:p></SPAN></FONT></P></DIV></DIV>
<P class=MsoNormal><FONT size=2 face=Calibri><SPAN
style="FONT-SIZE: 11pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Hi
Paul,</SPAN></FONT><FONT size=3 face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"> <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Sorry, I
did not mean init state machine. It's the new Format NVM state machine.
After Format NVM command completes successfully, Identify commands are
being issued to re-fetch the structures. We all call ProcessIo to issue the
commands and its return type is BOOLEAN, which only indicates whether the
command had been issued or not. In some error cases, such as failure on getting
CmdID, ProcessIo calls StorPortNotification to complete the request and callers
have no way to tell if the request had been completed or not. To avoid complete
the request twice, I'd like to suggest adding one extra parameter in ProcessIO
like:</SPAN></FONT><FONT size=3 face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P><FONT color=blue size=2 face=Arial><SPAN
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">BOOLEAN<BR>ProcessIo(<BR>
__in PNVME_DEVICE_EXTENSION pAdapterExtension,<BR> __in
PNVME_SRB_EXTENSION pSrbExtension,<BR> __in NVME_QUEUE_TYPE
QueueType,<BR> </SPAN></FONT><FONT color=red size=2
face=Arial><SPAN
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: red; FONT-SIZE: 10pt">__out
RequestCompleted<BR></SPAN></FONT><FONT color=blue size=2 face=Arial><SPAN
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">)</SPAN></FONT><o:p></o:p></P>
<P><FONT color=blue size=2 face=Arial><SPAN
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Thanks,</SPAN></FONT><o:p></o:p></P>
<P><FONT color=blue size=2 face=Arial><SPAN
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Alex</SPAN></FONT><o:p></o:p></P>
<DIV style="TEXT-ALIGN: center" class=MsoNormal align=center><FONT size=3
face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt">
<HR align=center SIZE=3 width="100%">
</SPAN></FONT></DIV>
<P style="MARGIN-BOTTOM: 12pt; mso-outline-level: 1" class=MsoNormal><B><FONT
size=2 face=Tahoma><SPAN
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt; FONT-WEIGHT: bold">From:</SPAN></FONT></B><FONT
size=2 face=Tahoma><SPAN
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt"> Luse, Paul E <A
href="mailto:[mailto:paul.e.luse@intel.com]">[mailto:paul.e.luse@intel.com]</A>
<BR><B><SPAN style="FONT-WEIGHT: bold">Sent:</SPAN></B> Thursday, January 19,
2012 11:06 AM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> Chang, Alex;
<A
href="mailto:nvmewin@lists.openfabrics.org">nvmewin@lists.openfabrics.org</A><BR><B><SPAN
style="FONT-WEIGHT: bold">Subject:</SPAN></B> RE: ProcessIO
Function</SPAN></FONT><FONT size=3 face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">Hi
Alex-<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">I’m not
totally sure I understand what you are trying to say but I think I do.<SPAN
style="mso-spacerun: yes"> </SPAN>What does “In SNTI codes” mean?<SPAN
style="mso-spacerun: yes"> </SPAN>I assume you’re saying that there’s some
inconsistency with what some callers are assuming about the return value from
ProcessIO() and, if so, good catch!<SPAN style="mso-spacerun: yes">
</SPAN>Clearly we cannot complete the same IO twice </SPAN></FONT><FONT
color=#1f497d size=2 face=Wingdings><SPAN
style="FONT-FAMILY: Wingdings; COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><SPAN
style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">J</SPAN></SPAN></FONT><FONT
color=#1f497d size=2><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><SPAN
style="mso-spacerun: yes"> </SPAN>Haven’t seen your formatNVM code yet but
if any of the sub-commands you need to issue as art of handling formatNVM fails
then you should fail the whole command gracefully.<SPAN
style="mso-spacerun: yes"> </SPAN>Also, how does any of this relate to
init state machine?<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">We may
not have time to talk about this in the meeting so if you could reply and
identify specific cases where you see callers of ProcessIO doing the wrong thing
and propose a fix that would be great.<SPAN style="mso-spacerun: yes">
</SPAN>I don’t believe we want the caller to have to complete the IO if
processIO fails, procession should do that however just looking at the code
doesn’t consistently do that.<SPAN style="mso-spacerun: yes"> </SPAN>We
should scrub it so that callers know that if procession fails that the IO has
been completed and if it completes the IO has been issued.<SPAN
style="mso-spacerun: yes"> </SPAN>We should also fix procession to
complete all failures with appropriate error codes.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">Thanks<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri">Paul<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT color=#1f497d size=2 face=Calibri><SPAN
style="COLOR: #1f497d; FONT-SIZE: 10pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<DIV>
<DIV
style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<P style="mso-outline-level: 1" class=MsoNormal><B><FONT size=2
face=Tahoma><SPAN
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt; FONT-WEIGHT: bold; mso-fareast-font-family: 'Times New Roman'">From:</SPAN></FONT></B><FONT
size=2 face=Tahoma><SPAN
style="FONT-FAMILY: 'Tahoma','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'">
Chang, Alex <A
href="mailto:[mailto:Alex.Chang@idt.com]">[mailto:Alex.Chang@idt.com]</A>
<BR><B><SPAN style="FONT-WEIGHT: bold">Sent:</SPAN></B> Thursday, January 19,
2012 11:40 AM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> Luse, Paul E;
<A
href="mailto:nvmewin@lists.openfabrics.org">nvmewin@lists.openfabrics.org</A><BR><B><SPAN
style="FONT-WEIGHT: bold">Subject:</SPAN></B> ProcessIO
Function<o:p></o:p></SPAN></FONT></P></DIV></DIV>
<P class=MsoNormal><FONT size=2 face=Calibri><SPAN
style="FONT-SIZE: 11pt; mso-bidi-font-family: Calibri"><o:p> </o:p></SPAN></FONT></P>
<DIV>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Hi
all</SPAN></FONT><FONT size=3 face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P></DIV>
<DIV>
<P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"> <o:p></o:p></SPAN></FONT></P></DIV>
<DIV>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">I tested
Format NVM last night and it basically works fine. However, when I re-visited
the state machine, there is potential problem related to ProcessIo function,
which completes the request back to Storport in error cases. The return value of
ProcessIo only indicates whether the command had been issued to controller or
not. It does NOT tell if it completes the request. In SNTI codes, Ray
re-uses the Srb Extension to issue command(s). If ProcessIO fails, ASSERTION is
called. Should I do the same if it fails when re-fetching Identify structures
after Format NVM succeeds? Question is we don't want to complete the same
request twice. We should talk about this later.</SPAN></FONT><FONT size=3
face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P></DIV>
<DIV>
<P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"> <o:p></o:p></SPAN></FONT></P></DIV>
<DIV>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Thanks,</SPAN></FONT><FONT
size=3 face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P></DIV>
<DIV>
<P class=MsoNormal><FONT color=blue size=2 face=Arial><SPAN
style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: blue; FONT-SIZE: 10pt">Alex</SPAN></FONT><FONT
size=3 face="Times New Roman"><SPAN
style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt"><o:p></o:p></SPAN></FONT></P></DIV></DIV></BODY></HTML>