<!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:m =
"http://schemas.microsoft.com/office/2004/12/omml"><HEAD>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.18904"><!--[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: Calibri;
}
@font-face {
font-family: Tahoma;
}
@page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.0in 1.0in 1.0in; }
P.MsoNormal {
MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt
}
LI.MsoNormal {
MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt
}
DIV.MsoNormal {
MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt
}
A:link {
COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.MsoHyperlink {
COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99
}
A:visited {
COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.MsoHyperlinkFollowed {
COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99
}
P.MsoAcetate {
MARGIN: 0in 0in 0pt; FONT-FAMILY: "Tahoma","sans-serif"; FONT-SIZE: 8pt; mso-style-priority: 99; mso-style-link: "Balloon Text Char"
}
LI.MsoAcetate {
MARGIN: 0in 0in 0pt; FONT-FAMILY: "Tahoma","sans-serif"; FONT-SIZE: 8pt; mso-style-priority: 99; mso-style-link: "Balloon Text Char"
}
DIV.MsoAcetate {
MARGIN: 0in 0in 0pt; FONT-FAMILY: "Tahoma","sans-serif"; FONT-SIZE: 8pt; mso-style-priority: 99; mso-style-link: "Balloon Text Char"
}
SPAN.EmailStyle17 {
FONT-FAMILY: "Calibri","sans-serif"; COLOR: windowtext; mso-style-type: personal-compose
}
SPAN.BalloonTextChar {
FONT-FAMILY: "Tahoma","sans-serif"; mso-style-priority: 99; mso-style-link: "Balloon Text"; mso-style-name: "Balloon Text Char"
}
.MsoChpDefault {
mso-style-type: export-only
}
DIV.Section1 {
page: Section1
}
</STYLE>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="2050" />
</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 link=blue vLink=purple>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT size=2
face=Arial>Hello,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT size=2
face=Arial> The WinOF name has been changed to OFED for windows or OFED-W
when necessary for clarification...</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT size=2
face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT size=2
face=Arial> A couple of questions:</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT size=2
face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT size=2
face=Arial>disclaimer - I am not a Windows driver expert, only a student,
mileage may vary.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT size=2
face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT size=2
face=Arial><FONT color=#0000ff><FONT color=#000000>1)</FONT> <FONT
color=#000000>y</FONT><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010><FONT color=#000000><FONT size=2 face=Arial>ou are
speaking of trunk\ulp\ipoib_ndis6_cm driver?</FONT> I'm guessing
yes</FONT>.</SPAN></SPAN></FONT></FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT color=#0000ff
size=2 face=Arial><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010></SPAN></SPAN></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT color=#000000
size=2 face=Arial><SPAN style="COLOR: #1f497d"><SPAN class=782515119-19042010>2)
IPoIB is technically not a 'filter' driver; although it's behavior may somewhat
mimic filter driver behaviors.</SPAN></SPAN></FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT color=#0000ff
size=2 face=Arial><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010></SPAN></SPAN></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT color=#0000ff
size=2 face=Arial><SPAN style="COLOR: #1f497d"><SPAN class=782515119-19042010>3)
The entire InfiniBand 'bus device management' concept is somewhat wedged into
the Windows driver stack w.r.t. PNP event
handling.</SPAN></SPAN></FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT color=#0000ff
size=2 face=Arial><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010></SPAN></SPAN></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT color=#0000ff
size=2 face=Arial><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010>Consider the chicken-n-egg issues of IB bus device
management. An HCA can not be removed/disabled unless the IB bus devices it
supports have previously been removed/disabled. The problem is how to
efficiently inform IB bus devices to remove/change-state without holding the HCA
in limbo until IB bus devices have been removed; all the IB bus device PNP mgmt
was done long ago in the 'early' days of Server
2003.</SPAN></SPAN></FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT color=#0000ff
size=2 face=Arial><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010></SPAN></SPAN></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT color=#0000ff
size=2 face=Arial><SPAN style="COLOR: #1f497d"><SPAN class=782515119-19042010>IB
bus devices (IPoIB, vnic, SRP) peek at (register with IBAL for) PNP events such
that the IB bus device will remove itself if the HCA is being removed. The
PNP event/IRP eventually reaches the HCA which can then properly remove
itself knowing it's IB bus devices have removed themselves
prior.</SPAN></SPAN></FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT color=#0000ff
size=2 face=Arial><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010>The IB bus device PNP peeking was chosen long ago to be
faster/cleaner than implementing a generalized IB bus device PNP
manager.</SPAN></SPAN></FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT color=#0000ff
size=2 face=Arial><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010></SPAN></SPAN></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT color=#0000ff
size=2 face=Arial><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010>please find additional inline
comments.</SPAN></SPAN></FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=782515119-19042010><FONT color=#0000ff
size=2 face=Arial><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010></SPAN></SPAN></FONT></SPAN> </DIV>
<DIV dir=ltr align=left>
<HR tabIndex=-1>
<FONT size=2 face=Tahoma><B>From:</B> John Russo [mailto:john.russo@qlogic.com]
<BR><B>Sent:</B> Monday, April 19, 2010 10:23 AM<BR><B>To:</B> Smith, Stan;
Hefty, Sean; ofw@lists.openfabrics.org<BR><B>Subject:</B> Filter Drivers in
WinOF<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV class=Section1>
<P class=MsoNormal><SPAN style="COLOR: #1f497d">QLogic is seeing some issues
with the current implementation of IPoIB and how it affects PnP
Notifications.<SPAN class=782515119-19042010><FONT color=#0000ff size=2
face=Arial> </FONT></SPAN></SPAN></P>
<P class=MsoNormal><SPAN style="COLOR: #1f497d"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN style="COLOR: #1f497d">Can anyone tell me why we are
doing things this way or if they disagree with the following
statements…<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="COLOR: #1f497d"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="COLOR: #1f497d">Problem: <o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="COLOR: #1f497d">IPoIB registers itself to handle
PnP notifications in ipoib_driver.c, function ipoib_pnp_notify(). Any PnP
notification other than PowerProfileChanged will cause the adapter state to
become “Removed” and the IPoIB filter driver will drop it’s connection.
This is in direct contradiction to MS Best Practices for filter drivers, which
clearly state that filter drivers should *<B>not</B>* interpret PnP or Power
notifications, but should instead pass these down the driver stack to the base
driver which has the responsibility for actually interpreting the event.
This is similar to the WinVerbs D0 handler, where the WinVerbs *<B>filter</B>*
driver is attempting to manage a Power notification.<SPAN
class=782515119-19042010><FONT color=#0000ff size=2
face=Arial> </FONT></SPAN></SPAN></P>
<P class=MsoNormal><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010><FONT color=#0000ff size=2 face=Arial>If the above
mentioned drivers did</FONT> <FONT color=#0000ff size=2 face=Arial>not
view/peek at PNP notifications, then how would the HCA be able to be removed or
disabled?</FONT></SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="COLOR: #1f497d"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="COLOR: #1f497d">Solution:
<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="COLOR: #1f497d">IPoIB should follow the MS Best
Practices for filter drivers and stop attempting to manage the Power or PnP
notifications, and allow them to pass down the driver stack<SPAN
class=782515119-19042010><FONT color=#0000ff size=2
face=Arial> </FONT></SPAN></SPAN></P>
<P class=MsoNormal><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010><FONT color=#0000ff size=2 face=Arial>Personally I do
not have a problem with making drivers less complex, provided they continue
to work.</FONT> </SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="COLOR: #1f497d"><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN
style="COLOR: #1f497d">Additional:
<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="COLOR: #1f497d">This will become problematic
during PCI rebalancing, which recall is *<B>not</B>* supposed to cause a
teardown but instead a suspension. IPoIB will treat the PnP rebalance
notifications as “teardown” events<SPAN class=782515119-19042010><FONT
color=#0000ff size=2 face=Arial> </FONT></SPAN></SPAN></P>
<P class=MsoNormal><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010><FONT color=#0000ff size=2 face=Arial>Agreed, sounds
like a bug.</FONT></SPAN></SPAN></P>
<P class=MsoNormal><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010><FONT color=#0000ff size=2 face=Arial>Perhaps the IPoIB
implementers from Mellanox will provide a more in-depth view of the
how and why of IPoIB PNP handling.</FONT></SPAN></SPAN></P>
<P class=MsoNormal><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN style="COLOR: #1f497d"><SPAN
class=782515119-19042010><FONT color=#0000ff size=2
face=Arial>stan.</FONT> </SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal><o:p> </o:p></P>
<P class=MsoNormal><o:p> </o:p></P>
<P class=MsoNormal><o:p> </o:p></P>
<P class=MsoNormal><IMG id=Picture_x0020_1 alt="Signiture QL blu"
src="cid:782515119@19042010-2C2C" width=44 height=26><o:p></o:p></P>
<P class=MsoNormal>John F. Russo<o:p></o:p></P>
<P class=MsoNormal>Engineering Manager<o:p></o:p></P>
<P class=MsoNormal>QLogic Corporation<o:p></o:p></P>
<P class=MsoNormal>780 Fifth Avenue<o:p></o:p></P>
<P class=MsoNormal>Suite 140<o:p></o:p></P>
<P class=MsoNormal>King of Prussia, PA 19406<o:p></o:p></P>
<P class=MsoNormal>Direct: 610-233-4866<o:p></o:p></P>
<P class=MsoNormal>Fax:
610-233-4777<o:p></o:p></P>
<P class=MsoNormal>Cell: 610-246-9903<o:p></o:p></P>
<P class=MsoNormal><A href="http://www.qlogic.com"><SPAN
style="COLOR: blue">www.qlogic.com</SPAN></A><o:p></o:p></P>
<P class=MsoNormal><o:p> </o:p></P></DIV></BODY></HTML>