[ofa-general] Re: infiniband-diags/saquery.c:print_multicast_member_record question
Ira Weiny
weiny2 at llnl.gov
Tue Jun 10 11:26:17 PDT 2008
On Tue, 10 Jun 2008 11:16:24 -0700
Hal Rosenstock <hrosenstock at xsigo.com> wrote:
> On Tue, 2008-06-10 at 11:11 -0700, Ira Weiny wrote:
> > On Tue, 10 Jun 2008 10:23:24 -0700
> > Hal Rosenstock <hrosenstock at xsigo.com> wrote:
> >
> > > On Tue, 2008-06-10 at 09:05 -0700, Ira Weiny wrote:
> > > > Yea, that comment does not make sense.
> > > >
> > > > I am searching the node records for the node which has the port defined in the
> > > > member record. The interface ID is simply the port guid, is it not?
> > > >
> > > > uint64_t gid_interface_id = cl_ntoh64( p_mcmr->port_gid.unicast.interface_id );
> > > >
> > > > I guess the comments should read.
> > > >
> > > > /* go through the node records searching for a port guid which matches
> > > > * this port gid interface id.
> > > > * This gives us a node description to print.
> > > > */
> > > >
> > > > Does that make more sense?
> > >
> > > The makes more sense but I don't think that the code does what's
> > > intended.
> >
> > Why do you say that?
>
> Looks to me like it relies on some node GUID being same as port GUID.
> While that's allowable for one port, it won't always be the case.
In my test system the Node GUID and port GUID are different and this works. I
am specifically using the port guid out of the NodeInfo struct of the
NodeRecord. So I should be using the port guid vs port GID ID _only_.
>
> > Have you found some configuration in which this does not
> > work?
>
> Yes.
:-( Sorry, I'm pretty sure this should be ok...
Ira
>
> -- Hal
>
> > From the spec pg 905:
> >
> > "Note: If a channel adapter or router has multiple ports on the same subnet,
> > there will be multiple NodeRecords available for that node from SA, one for
> > each possible PortGUID value of NodeInfo for that node on that subnet."
> >
> > So each NodeRecord should have a unique port GUID in it.
> >
> > Or do you think the GID interface ID will not always equal the GUID? I thought
> > I read that somewhere but perhaps I am wrong. I don't find it right now. :-/
> >
> > Ira
> >
> > >
> > > -- Hal
> > >
> > > > Ira
> > > >
> > > > On Tue, 10 Jun 2008 07:46:26 -0700
> > > > Hal Rosenstock <hrosenstock at xsigo.com> wrote:
> > > >
> > > > > Ira,
> > > > >
> > > > > In saquery.c:print_multicast_member_record, there is the following:
> > > > >
> > > > > /* go through and find the node description for this node GID */
> > > > > for (i = 0; i < result.result_cnt; i++) {
> > > > > node_record = osmv_get_query_node_rec(result.p_result_madw, i);
> > > > > if (cl_ntoh64(node_record->node_info.port_guid) == gid_interface_id)
> > > > > break;
> > > > > }
> > > > >
> > > > > I have a question about the intention here:
> > > > >
> > > > > The comment mentions the node description for this node GID. Is that
> > > > > what is meant or is the intention to get the node description
> > > > > corresponding to the port GUID for each MCMember record ?
> > > > >
> > > > > -- Hal
> > > > >
> > > > >
> > >
>
More information about the general
mailing list