[ofa-general] Multi-threaded diags (Was: Re: [PATCH 4/5] infiniband-diags/libibnetdisc: Introduce a context object.)

Jason Gunthorpe jgunthorpe at obsidianresearch.com
Wed Aug 26 17:24:20 PDT 2009


On Wed, Aug 26, 2009 at 04:40:26PM -0700, Ira Weiny wrote:

> Of course!  :-)  But first I would like to mention some numbers from the
> prototype code I have.  When running on a small fabric the additional overhead
> of thread creation actually slows down the scan.  :-(

It seems strange to me to thread something like this (and alot of hard
work)..

FSM multiplexing the recv path usually gives much better performance,
something like net discovery is quite easy..

main loop:
 fill tx queue from next list
 recieve replies and correlate with next list

each entry:
 add to next list additional ports

Repeat until dead.

Where a 'next list' would be a set of actions along the lines of
'query node' or 'query port' the action on a 'query node' completion
is to generate 'query port' next list items for all the ports, and on
'query port' completion is to generate 'query node' items for all
enabled ports..

libumad is nonblocking, parallel, etc...

Jason



More information about the general mailing list