<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";}
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
guys,<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'>            I
am implementing a user mode access library for the umad. I have encountered few
issues:<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'>1.
I am using the sys Infiniband class to get the HCA/port attributes, and several
fields are missing:<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'>            For
the ports:<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'>                        Physical
port state (as in Portinfo)<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'>                        Port
GUID (as in Nodeinfo to the port)<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'>            For
the CA:<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'>                        Node
type (as in NodeInfo)<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'>If
no one objects, I would like to add them to the class. If someone else prefers
to do it, please tell me.<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'>2.
I need an interface for setting/clearing IS_SM bit. If there is such please let
me know. If not, I would like to add an additional ioctl to set/clear the IS_SM
bit. A ctl file in /dev/…/ports/…/ is anther option. Please tell me
what do you think.<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'>3.
It would help me very much if I could get an async event on some changes, especially
ports state changes. Lid/SM lid changes events will be nice too. I am not familiar
with the HCA fw, so I don’t know if it does trigger such events. The
AnafaII fw does.<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'>Anyhow
there are several ways to implement the event mechanism, and I would to hear
what you think about it. I am still new to 2.6 mechanisms,  and I don’t
know if there is a recommended method to do this. The methods I know are Signals,
poll events, pseudo device blocking read, etc.<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'>If
we are going to use device reads, I want to suggest that we implement circular
events queue that each should contain at least the following:<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'> <timestamp>
<event name> <event data>. If we use on /dev and /sys I would also
use the name of the relevant sys|dev file as the event name, and have its new
data as the event data. Such an event queue is managed for each fd that request
that, and an event will be cleared once read, or upon queue overflow.<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'>I
have used such mechanisms before and they were very useful. Again, if there is
a standard way to do it, it is OK with me.<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
IS_SM issue is critical for OpenSM. The missing class fields are important because
without them I will have to do local mads and it will considerably complicates
the library. The events issue is less critical, but still such a mechanism may
help to solve many problems, and to simplify many other mechanisms.<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>