<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        text-align:right;
        direction:rtl;
        unicode-bidi:embed;
        font-size:12.0pt;
        font-family:"Times New Roman";}
h1
        {margin-top:12.0pt;
        margin-right:0in;
        margin-bottom:3.0pt;
        margin-left:.3in;
        text-indent:-.3in;
        page-break-after:avoid;
        mso-list:l1 level1 lfo1;
        font-size:16.0pt;
        font-family:Arial;}
h2
        {margin-top:12.0pt;
        margin-right:0in;
        margin-bottom:3.0pt;
        margin-left:.4in;
        text-indent:-.4in;
        page-break-after:avoid;
        mso-list:l1 level2 lfo2;
        font-size:14.0pt;
        font-family:Arial;
        font-style:italic;}
h3
        {margin-top:12.0pt;
        margin-right:.5in;
        margin-bottom:3.0pt;
        margin-left:0in;
        text-align:right;
        text-indent:-.5in;
        page-break-after:avoid;
        mso-list:l1 level3 lfo3;
        direction:rtl;
        unicode-bidi:embed;
        font-size:13.0pt;
        font-family:Arial;}
h4
        {margin-top:12.0pt;
        margin-right:.6in;
        margin-bottom:3.0pt;
        margin-left:0in;
        text-align:right;
        text-indent:-.6in;
        page-break-after:avoid;
        mso-list:l1 level4 lfo4;
        direction:rtl;
        unicode-bidi:embed;
        font-size:14.0pt;
        font-family:"Times New Roman";}
h5
        {margin-top:12.0pt;
        margin-right:.7in;
        margin-bottom:3.0pt;
        margin-left:0in;
        text-align:right;
        text-indent:-.7in;
        mso-list:l1 level5 lfo5;
        direction:rtl;
        unicode-bidi:embed;
        font-size:13.0pt;
        font-family:"Times New Roman";
        font-style:italic;}
h6
        {margin-top:12.0pt;
        margin-right:.8in;
        margin-bottom:3.0pt;
        margin-left:0in;
        text-align:right;
        text-indent:-.8in;
        mso-list:l1 level6 lfo6;
        direction:rtl;
        unicode-bidi:embed;
        font-size:11.0pt;
        font-family:"Times New Roman";}
p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
        {margin-top:12.0pt;
        margin-right:.9in;
        margin-bottom:3.0pt;
        margin-left:0in;
        text-align:right;
        text-indent:-.9in;
        mso-list:l1 level7 lfo7;
        direction:rtl;
        unicode-bidi:embed;
        font-size:12.0pt;
        font-family:"Times New Roman";}
p.MsoHeading8, li.MsoHeading8, div.MsoHeading8
        {margin-top:12.0pt;
        margin-right:1.0in;
        margin-bottom:3.0pt;
        margin-left:0in;
        text-align:right;
        text-indent:-1.0in;
        mso-list:l1 level8 lfo8;
        direction:rtl;
        unicode-bidi:embed;
        font-size:12.0pt;
        font-family:"Times New Roman";
        font-style:italic;}
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9
        {margin-top:12.0pt;
        margin-right:1.1in;
        margin-bottom:3.0pt;
        margin-left:0in;
        text-align:right;
        text-indent:-1.1in;
        mso-list:l1 level9 lfo9;
        direction:rtl;
        unicode-bidi:embed;
        font-size:11.0pt;
        font-family:Arial;}
span.MsoEndnoteReference
        {vertical-align:super;}
p.MsoEndnoteText, li.MsoEndnoteText, div.MsoEndnoteText
        {margin:0in;
        margin-bottom:.0001pt;
        text-align:right;
        direction:rtl;
        unicode-bidi:embed;
        font-size:10.0pt;
        font-family:"Times New Roman";}
p.MsoListBullet, li.MsoListBullet, div.MsoListBullet
        {margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        text-indent:-.25in;
        mso-list:l2 level1 lfo11;
        font-size:12.0pt;
        font-family:"Times New Roman";}
p.MsoTitle, li.MsoTitle, div.MsoTitle
        {margin-top:12.0pt;
        margin-right:0in;
        margin-bottom:3.0pt;
        margin-left:0in;
        text-align:center;
        direction:rtl;
        unicode-bidi:embed;
        font-size:16.0pt;
        font-family:Arial;
        font-weight:bold;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
        {margin-top:0in;
        margin-right:0in;
        margin-bottom:6.0pt;
        margin-left:0in;
        text-align:right;
        direction:rtl;
        unicode-bidi:embed;
        font-size:12.0pt;
        font-family:"Times New Roman";}
p.MsoSubtitle, li.MsoSubtitle, div.MsoSubtitle
        {margin-top:0in;
        margin-right:0in;
        margin-bottom:3.0pt;
        margin-left:0in;
        text-align:center;
        direction:rtl;
        unicode-bidi:embed;
        font-size:12.0pt;
        font-family:Arial;}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle23
        {mso-style-type:personal-compose;
        font-family:Arial;
        color:windowtext;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:-119;
        mso-list-type:simple;
        mso-list-template-ids:-156985440;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.25in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:.25in;
        margin-bottom:0in;
        margin-left:.25in;
        margin-bottom:.0001pt;
        text-indent:-.25in;
        font-family:Symbol;}
@list l1
        {mso-list-id:1285036741;
        mso-list-template-ids:-547819762;}
@list l1:level1
        {mso-level-style-link:"Heading 1";
        mso-level-text:%1;
        mso-level-tab-stop:.3in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:.3in;
        margin-bottom:0in;
        margin-left:.3in;
        margin-bottom:.0001pt;
        text-indent:-.3in;}
@list l1:level2
        {mso-level-style-link:"Heading 2";
        mso-level-text:"%1\.%2";
        mso-level-tab-stop:.4in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:.4in;
        margin-bottom:0in;
        margin-left:.4in;
        margin-bottom:.0001pt;
        text-indent:-.4in;}
@list l1:level3
        {mso-level-style-link:"Heading 3";
        mso-level-text:"%1\.%2\.%3";
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:.5in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        text-indent:-.5in;}
@list l1:level4
        {mso-level-style-link:"Heading 4";
        mso-level-text:"%1\.%2\.%3\.%4";
        mso-level-tab-stop:.6in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:.6in;
        margin-bottom:0in;
        margin-left:.6in;
        margin-bottom:.0001pt;
        text-indent:-.6in;}
@list l1:level5
        {mso-level-style-link:"Heading 5";
        mso-level-text:"%1\.%2\.%3\.%4\.%5";
        mso-level-tab-stop:.7in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:.7in;
        margin-bottom:0in;
        margin-left:.7in;
        margin-bottom:.0001pt;
        text-indent:-.7in;}
@list l1:level6
        {mso-level-style-link:"Heading 6";
        mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6";
        mso-level-tab-stop:.8in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:.8in;
        margin-bottom:0in;
        margin-left:.8in;
        margin-bottom:.0001pt;
        text-indent:-.8in;}
@list l1:level7
        {mso-level-style-link:"Heading 7";
        mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7";
        mso-level-tab-stop:.9in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:.9in;
        margin-bottom:0in;
        margin-left:.9in;
        margin-bottom:.0001pt;
        text-indent:-.9in;}
@list l1:level8
        {mso-level-style-link:"Heading 8";
        mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:1.0in;
        margin-bottom:0in;
        margin-left:1.0in;
        margin-bottom:.0001pt;
        text-indent:-1.0in;}
@list l1:level9
        {mso-level-style-link:"Heading 9";
        mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
        mso-level-tab-stop:1.1in;
        mso-level-number-position:left;
        mso-margin-top-alt:0in;
        margin-right:1.1in;
        margin-bottom:0in;
        margin-left:1.1in;
        margin-bottom:.0001pt;
        text-indent:-1.1in;}
@list l2
        {mso-list-id:1992904546;
        mso-list-type:hybrid;
        mso-list-template-ids:1467933110 -81507590 -942524410 67960837 67960833 67960835 67960837 67960833 67960835 67960837;}
@list l2:level1
        {mso-level-number-format:bullet;
        mso-level-style-link:"List Bullet";
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        margin-right:.5in;
        text-indent:-.25in;
        font-family:Symbol;}
@list l2:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        margin-right:1.0in;
        text-indent:-.25in;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l3
        {mso-list-id:2117291360;
        mso-list-type:hybrid;
        mso-list-template-ids:-2118742770 1594290048 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l3:level1
        {mso-level-tab-stop:.75in;
        mso-level-number-position:left;
        margin-left:.75in;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1 dir=RTL>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Hi
all,<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>            Another
issue I want to raise concerning the umad access library is some change
indicators for the infiniband class objects – ca & ports. It would be
very nice if we could have a modification version file for each just object. This
will help the safe atomic reading and caching of ca/port attributes.<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>The
idea that when you want to read an object attributes you will do the following:<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='margin-left:.75in;text-align:left;text-indent:
-.25in;mso-list:l3 level1 lfo12;direction:ltr;unicode-bidi:embed'><![if !supportLists]><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><span
style='mso-list:Ignore'>1.<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>       </span></font></span></span></font><![endif]><span
dir=LTR><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>read
the object version.<o:p></o:p></span></font></span></p>

<p class=MsoNormal dir=LTR style='margin-left:.75in;text-align:left;text-indent:
-.25in;mso-list:l3 level1 lfo12;direction:ltr;unicode-bidi:embed'><![if !supportLists]><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><span
style='mso-list:Ignore'>2.<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>       </span></font></span></span></font><![endif]><span
dir=LTR><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>read
all object fields you want<o:p></o:p></span></font></span></p>

<p class=MsoNormal dir=LTR style='margin-left:.75in;text-align:left;text-indent:
-.25in;mso-list:l3 level1 lfo12;direction:ltr;unicode-bidi:embed'><![if !supportLists]><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><span
style='mso-list:Ignore'>3.<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>       </span></font></span></span></font><![endif]><span
dir=LTR><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>read
the object version again<o:p></o:p></span></font></span></p>

<p class=MsoNormal dir=LTR style='margin-left:.75in;text-align:left;text-indent:
-.25in;mso-list:l3 level1 lfo12;direction:ltr;unicode-bidi:embed'><![if !supportLists]><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><span
style='mso-list:Ignore'>4.<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>       </span></font></span></span></font><![endif]><span
dir=LTR><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>if
the new one is the same as the old one, we are done<o:p></o:p></span></font></span></p>

<p class=MsoNormal dir=LTR style='margin-left:.75in;text-align:left;text-indent:
-.25in;mso-list:l3 level1 lfo12;direction:ltr;unicode-bidi:embed'><![if !supportLists]><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><span
style='mso-list:Ignore'>5.<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>       </span></font></span></span></font><![endif]><span
dir=LTR><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>else
the object was changed while reading, so go to step 2.<o:p></o:p></span></font></span></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='margin-left:.5in;text-align:left;direction:
ltr;unicode-bidi:embed'><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>If you have cached the object you can compare the version
each time the object is accessed to check if re-read is required.<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='margin-left:.5in;text-align:left;direction:
ltr;unicode-bidi:embed'><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>The version should be incremented upon any modification.<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='margin-left:.5in;text-align:left;direction:
ltr;unicode-bidi:embed'><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='margin-left:.5in;text-align:left;direction:
ltr;unicode-bidi:embed'><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Of course this is not my idea – this is common method used
in lock free programming, and is similar to LL/SC (load linked, store
conditional) or C&S (compare and set) schemes.<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Just
as a long shot, it will be very nice to replace the switch state change bit
with this version based mechanism. Not only that it can be used to implement
atomic read, it can be used to let several distributed SM’s to safely scan
the network. As a matter of fact it would also solve the dual master
synchronization problem we currently have (happens on network merge - two
masters sweeps the network, but one clears the change bit before the other see
it and it may end such that the SM with the lesser priority waits for the other
to take over, while the other don’t see it al all…).<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>This
issue may be relevant for the distributed SM mentioned in the SOW.<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Shahar<o:p></o:p></span></font></p>

</div>

</body>

</html>