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

<P><FONT SIZE=2>Fab</FONT>
</P>

<P><FONT SIZE=2>While moving OpenSM to use IBAL complib we encounter the few issues:</FONT>
</P>

<P><FONT SIZE=2>1. cl_timer.c - </FONT>
<BR><FONT SIZE=2>we tried to call cl_timer_start from within the timer call back,</FONT>
<BR><FONT SIZE=2>and the thread enter to deadlock .</FONT>
<BR><FONT SIZE=2>We notice that cl_timer_star call to cl_timer_stop which call to DeleteTimerQueueTimer with INVALI_HANDLE which cause it to wait to all the callbacks to finish. </FONT></P>

<P><FONT SIZE=2>Msdn:"...If this parameter is INVALID_HANDLE_VALUE, the function waits for the timer callback function to complete before returning.</FONT></P>

<P><FONT SIZE=2>"</FONT>
<BR><FONT SIZE=2>So if we call it within the timer callback we cause deadlock.</FONT>
</P>

<P><FONT SIZE=2>Why not to call DeleteTimerQueueTimer  with NULL parameter</FONT>
<BR><FONT SIZE=2>Msdn:"If this parameter is NULL, the function marks the timer for deletion and returns immediately. "</FONT>
</P>

<P><FONT SIZE=2>The kernel implementation of cl_timer_start does not call cl_timer_stop why ?</FONT>
</P>

<P><FONT SIZE=2>2. local traps:</FONT>
<BR><FONT SIZE=2>From the PRM its state that the HCA generate local trap with source lid 0 and the AL  should forward this trap to the SM .</FONT></P>

<P><FONT SIZE=2>We notice if activate 2 SM and one is the Master the second SM after changing the SM bit in the capability mask get trap with source lid 0</FONT></P>

<P><FONT SIZE=2>While the AL should forward this trap to the Master SM (portinfo.smlid)</FONT>
</P>

<P><FONT SIZE=2>Did you ever check this flow? </FONT>
<BR><FONT SIZE=2>Do you know if the AL forward trap with slid 0 to the SM lid?</FONT>
</P>
<BR>

<P><FONT SIZE=2>Thank</FONT>
<BR><FONT SIZE=2>Yossi </FONT>
</P>

</BODY>
</HTML>