<br><font size=2 face="sans-serif">This is caused by a complex interaction
of ib_mad, hcad_mod and pSeries firmware.</font>
<br>
<br><font size=2 face="sans-serif">As you might already have noticed a
eHCA doesn't show up as a "port" but as a switch in the fabric.</font>
<br><font size=2 face="sans-serif">Reason for this is partition support
and virtualisation in Infininband.</font>
<br>
<br><font size=2 face="sans-serif">If you want to give each partition in
a system a "own" IB adapter, it has to have its "own"
LID(s) and therefore it's own GUIDs.</font>
<br><font size=2 face="sans-serif">IB standard only allows one way currently
how to accomplish this: You need a switch and multiple adapters behind.</font>
<br><font size=2 face="sans-serif">So that's exactly how the eHCA shows
up in the fabric. In our case system firmware handles the SMA traffic for
that "switch" and for all "adapters" (running an SMA
or SM on QP0 is currently not supported).</font>
<br>
<br><font size=2 face="sans-serif">This brings up another problem: you
definetly won't want to allocate LIDs for all "potentially possible"
operating system partitions (not to confuse with IB partitioning), otherwise
you could come close to the 48000 LIDs/subnet limit pretty quickly. So
you need some kind of signal from the operating system to system firmware,</font>
<br><font size=2 face="sans-serif">which in the eHCA case is the H_DEFINE_AQP1
triggered  by ib_create_qp with IB_QPT_GSI parameter.</font>
<br><font size=2 face="sans-serif">AFTER that call handshaking between
system firmware and the SM will start, here's a new adapter active on a
switch port... what's your guid? here's your LID, p_key, SM lid....</font>
<br><font size=2 face="sans-serif">...and after all that it's possible
to send and receive packets from the fabric.</font>
<br><font size=2 face="sans-serif">The openib stack expects that a port
is fully functional after this create_qp returns, and starts to do all
sorts of modify QP and post send.</font>
<br><font size=2 face="sans-serif">So the only choice we have there is
to delay create_qp until the complete handshaking between system firmware
and the SM has finished (until we see a IB_PORT_ACTIVE in hcad_mod). If
we don't see that until EHCA_PORT_ACTIVE_TIMEOUT we have to return an error
code to openib, otherwise we're seriously in trouble (tried that).</font>
<br>
<br><font size=2 face="sans-serif">Shirley already pointed out on the mailinglist,
that ib_mad and others have different recovery depending on the success
of ib_create_qp(IB_QPT_GSI), especially ib_mad decides it's the best thing
to kill the complete adapter if that call fails on a single port.</font>
<br>
<br><font size=2 face="sans-serif">so that's the full explanation of ehca_nr_ports
and hopefully answers your question....</font>
<br>
<br>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Troy Benjegerdes <hozer@hozed.org></b>
</font>
<p><font size=1 face="sans-serif">08.10.2005 04:03</font>
<td width=59%>
<table width=100%>
<tr>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td valign=top><font size=1 face="sans-serif">Shirley Ma <xma@us.ibm.com></font>
<tr>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td valign=top><font size=1 face="sans-serif">Pradeep Satyanarayana <pradeep@us.ibm.com>,
Troy Benjegerdes <hozer@hozed.org>, IBMEHCA DD/Germany/IBM@IBMDE,
openib-general@openib.org, openib-general-bounces@openib.org</font>
<tr>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td valign=top><font size=1 face="sans-serif">Re: [openib-general] IBM
eHCA testing..</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><font size=2><tt>On Fri, Oct 07, 2005 at 09:33:27AM -0700, Shirley
Ma wrote:<br>
> Hi, Troy,<br>
><br>
> There is INSTALL file in the EHCA driver package.<br>
> In OpenPower 720 port 1 is at the top, port 2 is at the bottom.<br>
> In P570, port1 is at the bottom, port2 is at the top.<br>
</tt></font>
<br><font size=2><tt>Okay, I guess I should read more carefully ;)<br>
</tt></font>
<br><font size=2><tt>What is the issue with needing to use port 1? Can
that be fixed in the<br>
driver, or does that need a firmware update?</tt></font>
<br>