[ofa-general] madrpc_init and reseting performance counters

Sasha Khapyorsky sashak at voltaire.com
Sun Apr 27 04:38:01 PDT 2008


Hi Dan,

On 16:50 Fri 11 Apr     , Dan Noe wrote:
>
> The solution Joel had mentioned was to use madrpc_init() and then call 
> port_performance_reset() to reset the port.  But madrpc_init keeps a static 
> file descriptor (mad_portid) that is used for subsequent calls (such as is 
> eventually used when port_performance_reset() is called). And, there does 
> not seem to be any method to close this file descriptor.
>
> So, it is impossible to extend this method to multiple devices (or even 
> multiple ports).  With a single call to madrpc_init one can perpetually 
> reset the performance counters in the polling loop but this approach 
> doesn't work with multiple devices.

Why do you need to open multiple devices/ports? Are you using this tool
for multiple IB subnets handling?

> If madrpc_init is called more than 
> once, it leaks a file descriptor.

Yes, madrpc_init() is old and it works in this way. There are newer
mad_rpc_open_port() and mad_rpc_close_port() functions in libibmad which
support multiple devices/ports you can use it instead.

Sasha



More information about the general mailing list