[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