<!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:ns1 =
"http://schemas.microsoft.com/office/2004/12/omml"><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16587" name=GENERATOR><!--[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]-->
<STYLE>@font-face {
font-family: Tahoma;
}
@font-face {
font-family: Verdana;
}
@font-face {
font-family: Webdings;
}
@font-face {
font-family: Calibri;
}
@page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.25in 1.0in 1.25in; }
A:link {
mso-style-priority: 99
}
SPAN.MSOHYPERLINK {
mso-style-priority: 99
}
A:visited {
mso-style-priority: 99
}
SPAN.MSOHYPERLINKFOLLOWED {
mso-style-priority: 99
}
P {
mso-style-priority: 99
}
P.MsoNormal {
FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
LI.MsoNormal {
FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
DIV.MsoNormal {
FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
A:link {
COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlink {
COLOR: blue; TEXT-DECORATION: underline
}
A:visited {
COLOR: purple; TEXT-DECORATION: underline
}
SPAN.MsoHyperlinkFollowed {
COLOR: purple; TEXT-DECORATION: underline
}
P {
FONT-SIZE: 12pt; MARGIN-LEFT: 0in; MARGIN-RIGHT: 0in; FONT-FAMILY: "Times New Roman"; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto
}
SPAN.EmailStyle18 {
COLOR: windowtext; FONT-FAMILY: Arial; mso-style-type: personal
}
SPAN.EmailStyle19 {
COLOR: navy; FONT-FAMILY: Arial; mso-style-type: personal
}
SPAN.EmailStyle20 {
COLOR: #1f497d; FONT-FAMILY: Calibri; mso-style-type: personal
}
SPAN.EmailStyle21 {
COLOR: navy; FONT-FAMILY: Arial; mso-style-type: personal
}
SPAN.EmailStyle22 {
COLOR: navy; FONT-FAMILY: Arial; mso-style-type: personal
}
SPAN.EmailStyle23 {
COLOR: navy; FONT-FAMILY: Arial; mso-style-type: personal-reply
}
DIV.Section1 {
page: Section1
}
</STYLE>
<!--[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 lang=EN-US vLink=purple link=blue>
<DIV><SPAN class=950325307-23062008><FONT face=Arial color=#0000ff
size=2>Checked in (with minor changes) at revision 1295.</FONT></SPAN></DIV>
<DIV><SPAN class=950325307-23062008><FONT face=Arial color=#0000ff
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=950325307-23062008><FONT face=Arial color=#0000ff
size=2>Thanks</FONT></SPAN></DIV>
<DIV><SPAN class=950325307-23062008><FONT face=Arial color=#0000ff
size=2>Tzachi</FONT></SPAN></DIV><BR>
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> ofw-bounces@lists.openfabrics.org
[mailto:ofw-bounces@lists.openfabrics.org] <B>On Behalf Of </B>James
Yang<BR><B>Sent:</B> Friday, June 20, 2008 1:38 AM<BR><B>To:</B> Tzachi Dar;
Sean Hefty; Fab Tillier; ofw@lists.openfabrics.org<BR><B>Subject:</B> RE:
[ofw] RE: Assert in checked ibbus driver?<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV class=Section1>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">It seems it’s a false
alarm because p_list is not reset when an item is removed. One more line is
needed “</SPAN></FONT><FONT face="Courier New" color=red size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'">p_list_item->p_list
= NULL;”<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">in function
</SPAN></FONT><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">__cl_primitive_remove().<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">Can this line be added to
the svn?<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">Thanks,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">James</SPAN></FONT><FONT
face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">CL_INLINE <FONT
color=blue><SPAN style="COLOR: blue">void</SPAN></FONT>
CL_API<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">__cl_primitive_remove(<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
IN cl_list_item_t* <FONT color=blue><SPAN
style="COLOR: blue">const</SPAN></FONT> p_list_item
)<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">{<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
<FONT color=green><SPAN style="COLOR: green">/* CL_ASSERT that a non-null
pointer is provided. */<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
CL_ASSERT( p_list_item );<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
CL_ASSERT( p_list_item->p_next );<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
CL_ASSERT( p_list_item->p_prev );<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
<FONT color=green><SPAN style="COLOR: green">/* set the back pointer
*/<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
p_list_item->p_next->p_prev=
p_list_item->p_prev;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
<FONT color=green><SPAN style="COLOR: green">/* set the next pointer
*/<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
p_list_item->p_prev->p_next=
p_list_item->p_next;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
<FONT color=green><SPAN style="COLOR: green">/* if we're debugging, spruce up
the pointers to help find bugs */<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" color=blue size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">#if</SPAN></FONT><FONT
face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"> <FONT color=blue><SPAN
style="COLOR: blue">defined</SPAN></FONT>( _DEBUG_
)<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" color=gray size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">
if( p_list_item != p_list_item->p_next )<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" color=gray size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">
{<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" color=gray size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">
p_list_item->p_next = NULL;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" color=gray size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">
p_list_item->p_prev = NULL;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" color=gray size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">
</SPAN></FONT><FONT face="Courier New" color=red size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'">p_list_item->p_list
= NULL;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" color=gray size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">
}<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" color=blue size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">#endif</SPAN></FONT><FONT
face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
<FONT color=green><SPAN style="COLOR: green">/* defined( _DEBUG_ )
*/<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">}<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<DIV>
<DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><FONT
face="Times New Roman" size=3><SPAN style="FONT-SIZE: 12pt">
<HR tabIndex=-1 align=center width="100%" SIZE=2>
</SPAN></FONT></DIV>
<P class=MsoNormal><B><FONT face=Tahoma size=2><SPAN
style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">From:</SPAN></FONT></B><FONT
face=Tahoma size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"> Tzachi
Dar [mailto:tzachid@mellanox.co.il] <BR><B><SPAN
style="FONT-WEIGHT: bold">Sent:</SPAN></B> Thursday, June 19, 2008 12:07
PM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> Sean Hefty; James
Yang; Fab Tillier; ofw@lists.openfabrics.org<BR><B><SPAN
style="FONT-WEIGHT: bold">Subject:</SPAN></B> RE: [ofw] RE: Assert in checked
ibbus driver?</SPAN></FONT><o:p></o:p></P></DIV>
<P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN
style="FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P>
<DIV>
<P class=MsoNormal><FONT face=Arial color=blue size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial">From a fast reading
of the file CL_qlist.h it seems that all "remove functions" clear the
</SPAN></FONT><FONT face="Courier New" color=blue size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">p_list_item->p_list
field. So I guess that most chances that this is a real bug. Can you try and
add a printing to each time you add or remove an object from the
gp_mem_tracker list?</SPAN></FONT><o:p></o:p></P></DIV>
<DIV>
<P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN
style="FONT-SIZE: 12pt"> <o:p></o:p></SPAN></FONT></P></DIV>
<DIV>
<P class=MsoNormal><FONT face="Courier New" color=blue size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">Thanks</SPAN></FONT><o:p></o:p></P></DIV>
<DIV>
<P class=MsoNormal><FONT face="Courier New" color=blue size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">Tzachi</SPAN></FONT><o:p></o:p></P></DIV>
<BLOCKQUOTE
style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 4pt; PADDING-BOTTOM: 0in; MARGIN: 5pt 0in 5pt 3.75pt; BORDER-LEFT: blue 1.5pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: medium none">
<DIV
style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: blue 1.5pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: medium none">
<P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN
style="FONT-SIZE: 12pt"> <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">I can see item’s
p_list pointer being cleared when it’s removed from the list. My guess is
p_list is left over there when items are allocated from free memory. I’m not
familiar with the code enough to find all these items and clear them during
initialization. It’s odd to see p_list value was there but not p_prev and
p_next.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">If I ignore the
assertion, it will be OK. However the assert will come once again,
especially during startup and shutdown.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Thanks,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">James<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<DIV>
<DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><FONT
face="Times New Roman" size=3><SPAN style="FONT-SIZE: 12pt">
<HR tabIndex=-1 align=center width="100%" SIZE=2>
</SPAN></FONT></DIV>
<P class=MsoNormal><B><FONT face=Tahoma size=2><SPAN
style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">From:</SPAN></FONT></B><FONT
face=Tahoma size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"> Fab
Tillier [mailto:ftillier@windows.microsoft.com] <BR><B><SPAN
style="FONT-WEIGHT: bold">Sent:</SPAN></B> Thursday, June 19, 2008 9:11
AM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> James Yang;
ofw@lists.openfabrics.org<BR><B><SPAN
style="FONT-WEIGHT: bold">Subject:</SPAN></B> RE: Assert in checked ibbus
driver?</SPAN></FONT><o:p></o:p></P></DIV>
<P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN
style="FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Calibri color=#1f497d size=2><SPAN
style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: Calibri">Hi
James,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Calibri color=#1f497d size=2><SPAN
style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Calibri color=#1f497d size=2><SPAN
style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: Calibri">If you clear
the p_list pointer does the assert go away?<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Calibri color=#1f497d size=2><SPAN
style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: Calibri"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Calibri color=#1f497d size=2><SPAN
style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: Calibri">-Fab<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Calibri color=#1f497d size=2><SPAN
style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: Calibri"><o:p> </o:p></SPAN></FONT></P>
<DIV
style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: blue 1.5pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: medium none">
<DIV>
<DIV
style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
<P class=MsoNormal><B><FONT face=Tahoma size=2><SPAN
style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">From:</SPAN></FONT></B><FONT
face=Tahoma size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">
ofw-bounces@lists.openfabrics.org [mailto:ofw-bounces@lists.openfabrics.org]
<B><SPAN style="FONT-WEIGHT: bold">On Behalf Of </SPAN></B>James
Yang<BR><B><SPAN style="FONT-WEIGHT: bold">Sent:</SPAN></B> Wednesday, June
18, 2008 6:05 PM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B>
ofw@lists.openfabrics.org<BR><B><SPAN
style="FONT-WEIGHT: bold">Subject:</SPAN></B> [ofw] Assert in checked ibbus
driver?<o:p></o:p></SPAN></FONT></P></DIV></DIV>
<P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN
style="FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Can someone shed
some light on the following assert I saw in checked build
driver?<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">It happened in the
function </SPAN></FONT><FONT face="Courier New" size=2><SPAN Courier
New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">cl_qlist_insert_head()</SPAN></SPAN></FONT><FONT
face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> when a new item is
added to the list. And the assertion happens because it thinks the item is
already in the list. However when checking the list item, I don’t see it is
linked because its previous and next pointers are both NULL. The item is
also is not in the list by manually checking the
list.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Is this because the
item is not initialized properly as it’s said in the comments, or it’s a
true bug? <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Thanks,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">James<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">----------------------<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">CL_INLINE <FONT
color=blue><SPAN style="COLOR: blue">void</SPAN></FONT>
CL_API<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">cl_qlist_insert_head(<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
IN cl_qlist_t* <FONT color=blue><SPAN
style="COLOR: blue">const</SPAN></FONT>
p_list,<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
IN cl_list_item_t* <FONT color=blue><SPAN
style="COLOR: blue">const</SPAN></FONT> p_list_item
)<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">{<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
<FONT color=green><SPAN style="COLOR: green">/* CL_ASSERT that a non-null
pointer is provided. */<o:p></o:p></SPAN></FONT></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
CL_ASSERT( p_list );<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
<FONT color=green><SPAN style="COLOR: green">/* CL_ASSERT that a non-null
pointer is provided. */<o:p></o:p></SPAN></FONT></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
CL_ASSERT( p_list_item );<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
<FONT color=green><SPAN style="COLOR: green">/* CL_ASSERT that the list was
initialized. */<o:p></o:p></SPAN></FONT></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
CL_ASSERT( p_list->state == CL_INITIALIZED
);<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
<FONT color=green><SPAN
style="COLOR: green">/*<o:p></o:p></SPAN></FONT></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" color=green size=2><SPAN Courier
New?; color:green?><SPAN
style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">
* The list item must not already be part of the list. Note that
this<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" color=green size=2><SPAN Courier
New?; color:green?><SPAN
style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">
* assertion may fail if an uninitialized list item happens to have
its<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" color=green size=2><SPAN Courier
New?; color:green?><SPAN
style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">
* list pointer equal to the specified list. The chances of
this<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" color=green size=2><SPAN Courier
New?; color:green?><SPAN
style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">
* happening are acceptable in light of the value of this
check.<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" color=green size=2><SPAN Courier
New?; color:green?><SPAN
style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">
*/<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
<FONT color=red><SPAN style="COLOR: red">CL_ASSERT( p_list_item->p_list
!= p_list );<o:p></o:p></SPAN></FONT></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" color=blue size=2><SPAN Courier
New?; color:blue?><SPAN
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">#if</SPAN></SPAN></FONT><FONT
face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"> <FONT color=blue><SPAN
style="COLOR: blue">defined</SPAN></FONT>( _DEBUG_
)<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
p_list_item->p_list = p_list;<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" color=blue size=2><SPAN Courier
New?; color:blue?><SPAN
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">#endif<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" color=blue size=2><SPAN Courier
New?; color:blue?><SPAN
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
<FONT color=green><SPAN style="COLOR: green">/* Insert before the head.
*/<o:p></o:p></SPAN></FONT></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
__cl_primitive_insert( cl_qlist_head( p_list ), p_list_item
);<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">
p_list->count++;<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">}<o:p></o:p></SPAN></FONT></P></SPAN>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">1: kd>
k<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">ChildEBP
RetAddr <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795e9fc 80873922
nt!DbgBreakPoint<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795ece4 f71588c4
nt!RtlAssert+0xba<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795ed0c f715a5df
ibbus!cl_qlist_insert_head+0xb4 [k:\windows-openib\inc\complib\cl_qlist.h @
782]<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795ed24 f71b08da
ibbus!__cl_free_trk+0x6f [k:\windows-openib\\core\complib\cl_memory.c @
342]<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795ed38 f7218e8d
ibbus!__pnp_reg_free+0xfa [k:\windows-openib\\core\al\kernel\al_pnp.c @
386]<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795ed70 f715c0e4
ibbus!async_destroy_cb+0x72d [k:\windows-openib\\core\al\al_common.c @
685]<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795ed8c f7162534
ibbus!__cl_async_proc_worker+0x94
[k:\windows-openib\core\complib\cl_async_proc.c @
153]<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795eda0 f71645ec
ibbus!__cl_thread_pool_routine+0x54
[k:\windows-openib\core\complib\cl_threadpool.c @
67]<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795edac 80949b7c
ibbus!__thread_callback+0x2c
[k:\windows-openib\core\complib\kernel\cl_thread.c @
49]<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795eddc 8088e062
nt!PspSystemThreadStartup+0x2e<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">00000000 00000000
nt!KiThreadStartup+0x16<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">1: kd> dt
0x863416a0 _cl_qlist <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> +0x000
end
: _cl_list_item<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> +0x00c
count :
0x29<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> +0x010
state : 2
( CL_INITIALIZED )<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">1: kd> dt
0x85485268 _cl_list_item <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> +0x000
p_next : (null)
<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> +0x004
p_prev : (null)
<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> +0x008
p_list :
0x863416a0 _cl_qlist<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P></DIV></DIV></BLOCKQUOTE>
<DIV>
<P><FONT face="Times New Roman" color=#1f497d size=3><SPAN
style="FONT-SIZE: 12pt; COLOR: #1f497d"> </SPAN></FONT><FONT
face=Webdings color=green size=5><SPAN
style="FONT-SIZE: 18pt; COLOR: green; FONT-FAMILY: Webdings">P</SPAN></FONT><FONT
face="Courier New" color=green size=5><SPAN
style="FONT-SIZE: 18pt; COLOR: green; FONT-FAMILY: 'Courier New'"> </SPAN></FONT><FONT
face=Arial color=blue size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial"> </SPAN></FONT><FONT
face=Arial color=green size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Arial">Please consider the
environment before printing this e-mail or its
attachment(s)</SPAN></FONT><FONT face=Arial color=blue size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial"> </SPAN></FONT><FONT
color=navy><SPAN style="COLOR: navy"><o:p></o:p></SPAN></FONT></P></DIV>
<DIV>
<P class=MsoNormal><FONT face=Verdana color=#999999 size=1><SPAN
style="FONT-SIZE: 8.5pt; COLOR: #999999; FONT-FAMILY: Verdana"><BR>Disclaimer
added by <B><SPAN style="FONT-WEIGHT: bold">CodeTwo Exchange
Rules</SPAN></B><BR><A
href="http://www.codetwo.com">www.codetwo.com</A><o:p></o:p></SPAN></FONT></P></DIV>
<P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN
style="FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P><!--418FEECD7B41410cA6AF47547865A7D9--></DIV></BLOCKQUOTE></BODY></HTML>