[openib-general] umad_recv won't block after first read...

Abhijit Gadgil Abhijit.Gadgil at pantasys.com
Thu Aug 10 06:46:46 PDT 2006


Hi Hal, 

Please see below.

On Aug 10, 2006 07:01 PM, Hal Rosenstock <halr at voltaire.com> wrote:

> Hi Abhijit,
> 
> On Thu, 2006-08-10 at 07:21, Abhijit Gadgil wrote:
> > Hi All, 
> > 
> > I am trying to write a simple program using libibumad to 'subscribe' for traps and then receive traps from the SA. Most of the things seem to work fine, however I am facing a small problem where, after first read for the trap, all subsequent reads are not blocking (and return some incorrect length). 
> 
> What do those calls return ? What version of management are you using ? 
> 

I am running the management code from the SVN (svn release 8781, it may be slightly outdated!) 


> > Attached is the simple code, can someone tell, what exactly is wrong out here? 
> 
> I didn't build and run this so my comments are based on just looking at
> the code. I don't think it would build as there are other changes needed
> to support this (e.g. IB_SA_INFINFO_XXX in libibmad at a minimum).
> 

Oh I am sorry, I didn't mention this before, I modified the libibmad sources (specifically src/fields.c and include/infiniband/mad.h) files to accomplish this. Once I get it right, I will submit a patch. (It's too hacky right now)

> Is the main loop based on some operational program ? If so, which one ?
> 
> A couple of specific comments:
> 
> init_sa_headers: InformInfo does not actually use RMPP so the
> initialization here needs to change. Not sure what doing this would
> cause without actually building and running this.
> 

This was my first try of trying to use umad, hence for simplicity I copied from some reference code that was having RMPP enabled. I think I should get rid of this as well. 


> Based on this, what is the result of the subscription ? Does it really
> succeed ?

Well the subscriptions in-deed succeeded and I was able to receive IPoIB broadcast multicast group creation/deletion traps as well, but the problem mentioned below (ie. non-blocking reads) started appearing. 

> main: Rather than hard coding SM LID to 0x12, there are ways to get this
> dynamically. There are examples of how to do this.

Sorry about this again. I realized it later that it is stupid to hard code it (eg. I could have got it from the ca[].port->sm_lid), will fix that eventually. 

Thanks.

-abhijit

> -- Hal
> 
> > Thanks
> > 
> > -abhijit
> > 
> > ______________________________________________________________________
> > _______________________________________________
> > openib-general mailing list
> > openib-general at openib.org
> > http://openib.org/mailman/listinfo/openib-general
> > 
> > To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general





More information about the general mailing list