<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:st1 =
"urn:schemas-microsoft-com:office:smarttags" xmlns:w =
"urn:schemas-microsoft-com:office:word" xmlns:o =
"urn:schemas-microsoft-com:office:office"><HEAD><!--[if !mso]>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<STYLE>st1\:* {
BEHAVIOR: url(#default#ieooui)
}
</STYLE>
<![endif]-->
<STYLE>@page Section1 {size: 612.0pt 792.0pt; margin: 72.0pt 77.95pt 72.0pt 77.95pt; }
P.MsoNormal {
FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"
}
LI.MsoNormal {
FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"
}
DIV.MsoNormal {
FONT-SIZE: 12pt; MARGIN: 0cm 0cm 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.MsoPlainText {
FONT-SIZE: 10pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Courier New"
}
LI.MsoPlainText {
FONT-SIZE: 10pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Courier New"
}
DIV.MsoPlainText {
FONT-SIZE: 10pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Courier New"
}
DIV.Section1 {
page: Section1
}
</STYLE>
<META content="MSHTML 6.00.6000.16587" name=GENERATOR></HEAD>
<BODY lang=EN-US vLink=purple link=blue>
<DIV>
<DIV><FONT face=Arial size=2><SPAN class=394483108-17072008>Hi
Slava,</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=394483108-17072008></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=394483108-17072008><SPAN
class=252425610-17072008>It would be nice if the guids can be byte swapped so
they will fit the guids that are reported by vstat and
opensm.</SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=394483108-17072008></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=394483108-17072008>I have tried to work
with the new partition code but with no real success.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=394483108-17072008>As a meter of fact,
applying the code that you have sent prevents on many cases the machine from
going up.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=394483108-17072008>This is true for
Connectx cards as well as Infinihost III cards (a.k.a.
Sinai)</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=394483108-17072008></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=394483108-17072008>The main problem
that I was able to discover is that if the function __ib_mgr_init() returns
IB_NOT_FOUND we get into a state that we can never came out of. That is the port
will never come up / or stay down.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=394483108-17072008>Getting into this
situation can happen very easily if you are not connected to a managment switch
( or probably not connected to a cable at all). </SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=394483108-17072008>In this case, the
check if( ca_attr->p_port_attr->link_state == IB_LINK_ACTIVE) will always
fail, and the result will be that we will always be stacked with returning
IB_NOT_FOUND.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=394483108-17072008></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=394483108-17072008>Please note that
before your checkin in the case that the state was not up, we have continued in
creating in the normal running of this function.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=394483108-17072008></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=394483108-17072008>After I have fixed
that the machine can go up, but parti<SPAN class=252425610-17072008>ti</SPAN>on
doesn't still work. I reach the code</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=394483108-17072008> for(index = 0; index <
ca_attr->p_port_attr->num_pkeys;
index++)<BR> {<BR> if(cl_hton16(p_port->p_adapter->guids.port_guid.pkey)
==
ca_attr->p_port_attr->p_pkey_table[index])<BR> break;<BR> }</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=394483108-17072008>but
ca_attr->p_port_attr->p_pkey_table seems to contain only 0xffff and
0x0000. I don't see the pkeys that I have added on the card.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=394483108-17072008></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=394483108-17072008>After more checks I
have came to conclusion that even before applying your patch ipoib partions have
stopped working on the current version of the stack.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=394483108-17072008></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=394483108-17072008><SPAN
class=252425610-17072008>Thanks</SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=394483108-17072008><SPAN
class=252425610-17072008>Tzachi</SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=394483108-17072008></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=394483108-17072008>And one last thing:
while running with your patch, and trying to disable the ibbus, I have
also reached the following bugcheck. (not 100% sure if it is related to your
changes or not).</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>MODULE_NAME: ibbus</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>FAULTING_MODULE: 80800000 nt</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>DEBUG_FLR_IMAGE_TIMESTAMP:
487eecc5</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The
instruction at "0x%08lx" referenced memory at "0x%08lx". The memory could not be
"%s".</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>FAULTING_IP:
<BR>nt!IoInvalidateDeviceRelations+13<BR>8080cd0f 8b86b0000000
mov eax,dword ptr [esi+0B0h]</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>EXCEPTION_RECORD: f78e6958 -- (.exr
fffffffff78e6958)<BR>ExceptionAddress: 8080cd0f
(nt!IoInvalidateDeviceRelations+0x00000013)<BR> ExceptionCode:
c0000005 (Access violation)<BR> ExceptionFlags:
00000000<BR>NumberParameters: 2<BR> Parameter[0]:
00000000<BR> Parameter[1]: 004600e1<BR>Attempt to read from address
004600e1</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>CONTEXT: f78e6654 -- (.cxr
fffffffff78e6654)<BR>eax=89c39d78 ebx=89cbac30 ecx=00000000 edx=89c730b8
esi=00460031 edi=89cbace8<BR>eip=8080cd0f esp=f78e6a20 ebp=f78e6a24
iopl=0 nv up ei pl nz na po
nc<BR>cs=0008 ss=0010 ds=0023 es=0023 fs=0030
gs=0000
efl=00010202<BR>nt!IoInvalidateDeviceRelations+0x13:<BR>8080cd0f
8b86b0000000 mov eax,dword ptr
[esi+0B0h] ds:0023:004600e1=????????<BR>Resetting default scope</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>DEFAULT_BUCKET_ID: WRONG_SYMBOLS</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>BUGCHECK_STR: 0x7E</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>LAST_CONTROL_TRANSFER: from ba81a6f5 to
8080cd0f</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>STACK_TEXT: <BR>WARNING: Stack unwind
information not available. Following frames may be wrong.<BR>f78e6a24 ba81a6f5
00460031 00000000 00000000 nt!IoInvalidateDeviceRelations+0x13<BR>f78e6a50
ba821e5e 89d66008 00000001 00000001 ibbus!free_port_mgr+0x325
[q:\openib\trunk\core\bus\kernel\bus_port_mgr.c @ 400]<BR>f78e6a74 ba821b38
89d66028 f78e6a90 00000001 ibbus!__destroy_cb+0xfe
[q:\openib\trunk\core\complib\cl_obj.c @ 779]<BR>f78e6a94 ba8213f4 89d66008
00000001 00000002 ibbus!__destroy_obj+0x108
[q:\openib\trunk\core\complib\cl_obj.c @ 709]<BR>f78e6aa8 ba8e80d1 89d66008
00000001 00000001 ibbus!cl_obj_destroy+0x54
[q:\openib\trunk\core\complib\cl_obj.c @ 313]<BR>f78e6ac4 ba81f93e 8a0dd5f0
8a0dd6a8 f78e6af0 ibbus!fdo_release_resources+0x131
[q:\openib\trunk\core\bus\kernel\bus_pnp.c @ 384]<BR>f78e6ad8 ba8f8474 8a0dd5f0
89cbac30 f78e6b9c ibbus!cl_do_remove+0xde
[q:\openib\trunk\core\complib\kernel\cl_pnp_po.c @ 693]<BR>f78e6af8 ba8f54c4
8a0dd5f0 89cbac30 f78e6b9c ibbus!__remove+0x104
[q:\openib\trunk\core\complib\kernel\cl_pnp_po.c @ 661]<BR>f78e6ba4 8083f9d0
8a0dd5f0 89cbac30 f78e6c34 ibbus!cl_pnp+0xe44
[q:\openib\trunk\core\complib\kernel\cl_pnp_po.c @ 260]<BR>f78e6bb8 808f6a25
8a3ad280 8a3ad280 8a3ad130 nt!IofCallDriver+0x38<BR>f78e6be4 808e20b5 8a0dd5f0
f78e6c10 00000000 nt!ObMakeTemporaryObject+0x549<BR>f78e6c38 8080beae 8a3ad280
00000002 00000000 nt!IoForwardIrpSynchronously+0x1414<BR>f78e6c60 808e149b
e1614330 00000016 e22e34d8 nt!IoDetachDevice+0xcd<BR>f78e6c78 808e18cc 8a3ad130
00000002 e22e34d8 nt!IoForwardIrpSynchronously+0x7fa<BR>f78e6cac 808e1732
8a3ad280 022e34d8 00000002 nt!IoForwardIrpSynchronously+0xc2b<BR>f78e6d40
808e19b6 f78e6d7c 8a37544c e2292868
nt!IoForwardIrpSynchronously+0xa91<BR>f78e6d5c 808e7879 f78e6d7c 8a38b660
808b70dc nt!IoForwardIrpSynchronously+0xd15<BR>f78e6d80 8083f72e 88351230
00000000 8a38b660 nt!ExCreateCallback+0x258<BR>f78e6dac 8092ccff 88351230
00000000 00000000 nt!KeRemoveQueue+0x2cb<BR>f78e6ddc 80841a96 8083f671 00000001
00000000 nt!ObAssignSecurity+0x228<BR>00000000 00000000 00000000 00000000
00000000
nt!PsGetCurrentThreadWin32ThreadAndEnterCriticalRegion+0xd5</FONT></DIV>
<DIV> </DIV><FONT face=Arial size=2>
<DIV><BR>FOLLOWUP_IP: <BR>ibbus!free_port_mgr+325
[q:\openib\trunk\core\bus\kernel\bus_port_mgr.c @ 400]<BR>ba81a6f5
8b55f8
mov edx,dword ptr [ebp-8]</DIV>
<DIV> </DIV>
<DIV>FAULTING_SOURCE_CODE: <BR> 396:
IoInvalidateDeviceRelations(<BR> 397:
p_ext->h_ca->obj.p_ci_ca->verbs.p_hca_dev,
BusRelations );<BR> 398: <BR> 399: /*
Release the reference on the CA object. */<BR>> 400:
deref_al_obj( &p_ext->h_ca->obj );<BR>
401: }<BR> 402: BUS_TRACE( BUS_DBG_PNP,
("Deleted device %s: PDO %p, ext %p\n",<BR> 403:
p_ext->cl_ext.vfptr_pnp_po->identity,
p_ext->cl_ext.p_self_do, p_ext ) );<BR> 404:
IoDeleteDevice( p_ext->cl_ext.p_self_do );<BR> 405:
}</DIV>
<DIV> </DIV>
<DIV><BR>SYMBOL_STACK_INDEX: 1</DIV>
<DIV> </DIV>
<DIV>SYMBOL_NAME: ibbus!free_port_mgr+325</DIV>
<DIV> </DIV>
<DIV>FOLLOWUP_NAME: MachineOwner</DIV>
<DIV> </DIV>
<DIV>IMAGE_NAME: ibbus.sys</DIV>
<DIV> </DIV>
<DIV>STACK_COMMAND: .cxr 0xfffffffff78e6654 ; kb</DIV>
<DIV> </DIV>
<DIV>BUCKET_ID: WRONG_SYMBOLS</DIV>
<DIV> </DIV>
<DIV>Followup: MachineOwner<BR>---------<BR></FONT></DIV></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> Slava Strebkov
[mailto:slavas@voltaire.com] <BR><B>Sent:</B> Thursday, July 17, 2008 8:37
AM<BR><B>To:</B> Tzachi Dar<BR><B>Cc:</B>
ofw@lists.openfabrics.org<BR><B>Subject:</B> RE: [ofw] RE: IPoIB partition
patch<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV class=Section1>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt">Hi Tzachi,<o:p></o:p></SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt">Please see my answers
below.<o:p></o:p></SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt">-----Original Message-----<BR>From: Tzachi Dar
[mailto:tzachid@mellanox.co.il] <BR>Sent: Wednesday, July 16, 2008 11:48
PM<BR>To: <st1:PersonName w:st="on">Slava Strebkov</st1:PersonName><BR>Cc:
ofw@lists.openfabrics.org<BR>Subject: RE: [ofw] RE: IPoIB partition
patch</SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt"> <o:p></o:p></SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt">Hi Slava,<o:p></o:p></SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt">I have been looking at the partition patch and I have
two questions:<o:p></o:p></SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt">1) The function bus_add_pkey can be called twice. Once
from proxy_ioctl<o:p></o:p></SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt">and once from ioc_ioctl. I guess that one of them is
redundant. Is that<o:p></o:p></SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt">true?<o:p></o:p></SPAN></FONT></P>
<P class=MsoPlainText><B><FONT face="Courier New" size=2><SPAN
style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: black">Yes, proxy_ioctl is
redundant, sorry I forgot to remove. <o:p></o:p></SPAN></FONT></B></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt">2) I have noticed that when entering guids I have to
do a byte swap of<o:p></o:p></SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt">the GUID. That is if I look at the GUID as it is
printed by vstat than I<o:p></o:p></SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt">have to do the swap manually. Is there any reason for
that?<o:p></o:p></SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoPlainText><B><FONT face="Courier New" size=2><SPAN
style="FONT-WEIGHT: bold; FONT-SIZE: 10pt">I took GUID from Device manager
(device ID). That’s the only reason for byte
swap.<o:p></o:p></SPAN></FONT></B></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: black"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt">Thanks<o:p></o:p></SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt">Tzachi<o:p></o:p></SPAN></FONT></P>
<P class=MsoPlainText><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; COLOR: black"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoPlainText><B><FONT face="Courier New" size=2><SPAN
style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: black">Thanks<o:p></o:p></SPAN></FONT></B></P>
<P class=MsoPlainText><B><FONT face="Courier New" size=2><SPAN
style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: black">Slava<o:p></o:p></SPAN></FONT></B></P></DIV></BLOCKQUOTE></BODY></HTML>