<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2654.45">
<TITLE>OpenSM work</TITLE>
</HEAD>
<BODY>

<P ALIGN=LEFT><FONT COLOR="#0000FF" FACE="Palatino Linotype">Hi All,</FONT></P>

<P ALIGN=LEFT><FONT COLOR="#0000FF" FACE="Palatino Linotype">FYI:</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"></FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">Mellanox</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> is</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> focusing on the following items on OpenSM development</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> for the last few weeks:</FONT></P>

<P><FONT COLOR="#0000FF" FACE="Palatino Linotype">1.     </FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">Stability testing over the IB management simulator:</FONT>
<BR><FONT COLOR="#0000FF" FACE="Palatino Linotype">a.     </FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">Randomly pick bad links with high packet drop statistics</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">–</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> success</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">is SUBNET UP</FONT>
<BR><FONT COLOR="#0000FF" FACE="Palatino Linotype">b.     </FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">Route using up/down algorithm</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">–</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> success is no credit loops</FONT>
</P>

<P><FONT COLOR="#0000FF" FACE="Palatino Linotype">2.     </FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">Semi-static LID assignment:</FONT>
<BR><FONT COLOR="#0000FF" FACE="Palatino Linotype">a.     </FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">D</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">eveloped a</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">n interface</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">for persistent storage of arbitrary data.</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">T</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">he goal is</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">to enable further development of LDAP</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> (ala Troy</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">’</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">s request)</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> or SQL module. Please see osm_db.h attached</FONT></P>
<UL><UL><UL>
<P ALIGN=LEFT><FONT FACE="Arial" SIZE=2 COLOR="#000000">  <<osm_db.h>> </FONT></P>
</UL></UL></UL>
<P><FONT COLOR="#0000FF" FACE="Palatino Linotype">b.     </FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">Developed file based implementation for osm_db.h</FONT>
<BR><FONT COLOR="#0000FF" FACE="Palatino Linotype">c.     </FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">Modify osm_lid_mgr (lid assignment algorithm) to use the LIDs stored in the persist</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">e</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">nt storage</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">. Handle all cases of bad file and new LIDs on the fabric. The</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">–</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">r flag now lets OpenSM overwrite the known data. Persistent Guid to LIDs data</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">is kept even if the GUID</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">disappears</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> for a while. The code also handles LID assignment for LMC > 0 in a way better then</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">the previous</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"></FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">algorithm</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">: It used to assign 2^LMC LIDs for every port</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">–</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> even</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">for switches port 0. Now it will only preserve 1 LID for switch port 0.</FONT></P>

<P><FONT COLOR="#0000FF" FACE="Palatino Linotype">3.     </FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">Irresponsive port:</FONT>
<BR><FONT COLOR="#0000FF" FACE="Palatino Linotype">a.     </FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">The</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">phenomenon is</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">: A port does not respond to the SM during the</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">discovery stage. OpenSM can not obtain enough data about</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">the</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> port and thus it does not</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">appear</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> in the final</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">database</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">.</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> Since OpenSM uses light sweeps when there is no</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">“</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">change detected</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">”</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> it will not query the port until either a switch</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">sets its</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">“</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">change bit</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">”</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> or send a trap</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">.</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> So that irresponsive port will never be polled again if there is no heavy sweep.</FONT></P>

<P><FONT COLOR="#0000FF" FACE="Palatino Linotype">b.     </FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">T</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">he</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> solution:</FONT> 
<BR><FONT COLOR="#0000FF" FACE="Palatino Linotype">i.     </FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">During discovery</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">track ports (physical ports) that have</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"></FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">their logical link state != DOWN but the port on the other side of the link</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">is not known to the SM. </FONT></P>

<P><FONT COLOR="#0000FF" FACE="Palatino Linotype">ii.    </FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">During light sweep:  not only scan the switches</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">“</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">change bit</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype">”</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> but also test to see if the port on the other side on these ports (from i)</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">is responding. If it does</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">–</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> issue a heavy sweep.</FONT></P>

<P><FONT COLOR="#0000FF" FACE="Palatino Linotype">4.     </FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">Head of Queue Life:</FONT>
<BR><FONT COLOR="#0000FF" FACE="Palatino Linotype">a.     </FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">Problem:</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">In cases of PCI hardware failure HCAs can not complete RDMA requests and loose all credits from their input ports</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> (in other words: their input buffers are filled). So they create back pressure on the fabric. </FONT></P>

<P><FONT COLOR="#0000FF" FACE="Palatino Linotype">b.     </FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">Solution: use a fast head of</FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">queue</FONT><FONT COLOR="#0000FF" FACE="Palatino Linotype"> time limit on every switch port that drives an HCA.</FONT>
</P>

<P><FONT COLOR="#0000FF" FACE="Palatino Linotype">5.     </FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">SA queries stress testing:</FONT>
<BR><FONT COLOR="#0000FF" FACE="Palatino Linotype">a.     </FONT> <FONT COLOR="#0000FF" FACE="Palatino Linotype">We are exploring max performance of the SA and ways to improve it.</FONT>
</P>

<P ALIGN=LEFT><FONT COLOR="#0000FF" FACE="Palatino Linotype">Eitan</FONT></P>
<BR>
<BR>

<P ALIGN=LEFT><B><I></I></B><A NAME="_MailAutoSig"><B><I><FONT COLOR="#0000FF" SIZE=6 FACE="Monotype Corsiva">Eitan Zahavi</FONT></I></B></A></P>

<P ALIGN=LEFT><FONT COLOR="#0000FF" SIZE=2 FACE="Tahoma">Design Technology Director</FONT></P>

<P ALIGN=LEFT><FONT COLOR="#0000FF" SIZE=2 FACE="Tahoma">Mellanox Technologies LTD</FONT></P>

<P ALIGN=LEFT><FONT COLOR="#0000FF" SIZE=2 FACE="Tahoma">Tel:+972-4-9097208<BR>
Fax:+972-4-9593245</FONT></P>

<P ALIGN=LEFT><FONT COLOR="#0000FF" SIZE=2 FACE="Tahoma">P.O. Box 586 Yokneam 20692 ISRAEL</FONT></P>

<P ALIGN=LEFT></P>

</BODY>
</HTML>