1
1
openmpi/ompi/mca
Jeff Squyres 5295902ebe Fixes trac:1285:
* allow receive_queues to be specified in the INI file 
 * detect when multiple different receive_queues are specified and 
   gracefully abort 

However, accomplishing these goals ran into multiple difficulties. By 
putting receive_queues in the INI file: 

 1. we may not find the value until we've already traversed multiple HCAs 
 1. we may find multiple different receive_queues values

But since the openib btl initializes as it discovers each HCA/port/LID
(including the BSRQ data), if we find a new receive_queues value late
in the discovery process, then all the BSRQ data that was previously
initialized will likely be invalid. So I had to pull all the BSRQ
initialization out until after the rest of the discovery /
initialization process.

Additionally, note that if the user specifies the MCA parameter
btl_openib_receive_queues, it trumps whatever was in the INI file. So
in this case, there can never be a receive_queues conflict.  This
commit does the following (Jon wrote part of this, too):

 * adapt _ini.c to accept the "receive_queues" field in the file 
 * move 90% of _setup_qps() from _ini.c to _component.c 
 * move what was left of _setup_qps() into the main 
   _register_mca_params() function 
 * adapt init_one_hca() to detect conflicting receive_queues values 
   from the INI file 
 * after the _component.c loop calling init_one_hca(): 
   * call setup_qps() to parse the final receive_queues string value 
   * traverse all resulting btls and initialize their HCAs (if they
     weren't already): setup some lists and call prepare_hca_for_use()

I tested this code on a dual-HCA system where I artificially put in 
differing receive_queues values in the INI file for the two different 
types of HCAs that I have and it all seemed to work.

This commit was SVN r18450.

The following Trac tickets were found above:
  Ticket 1285 --> https://svn.open-mpi.org/trac/ompi/ticket/1285
2008-05-18 18:50:56 +00:00
..
allocator This commit represents a bunch of work on a Mercurial side branch. As 2008-05-13 20:00:55 +00:00
bml This commit represents a bunch of work on a Mercurial side branch. As 2008-05-13 20:00:55 +00:00
btl Fixes trac:1285: 2008-05-18 18:50:56 +00:00
coll Remove the ignore files as decided at Tuesday's developers conference call. Now, hierarchical collectives will be compiled in but the priority is still at 0 requiring a user to set mca parameters to enable them. 2008-05-15 01:26:52 +00:00
common This commit represents a bunch of work on a Mercurial side branch. As 2008-05-13 20:00:55 +00:00
crcp Cleanup the CRCP Coord timing functionality. Provides a rough assessment of time each element of the algorithm is taking. 2008-05-14 19:54:20 +00:00
dpm This commit represents a bunch of work on a Mercurial side branch. As 2008-05-13 20:00:55 +00:00
io This commit represents a bunch of work on a Mercurial side branch. As 2008-05-13 20:00:55 +00:00
mpool This commit represents a bunch of work on a Mercurial side branch. As 2008-05-13 20:00:55 +00:00
mtl This commit represents a bunch of work on a Mercurial side branch. As 2008-05-13 20:00:55 +00:00
osc This commit represents a bunch of work on a Mercurial side branch. As 2008-05-13 20:00:55 +00:00
pml This commit represents a bunch of work on a Mercurial side branch. As 2008-05-13 20:00:55 +00:00
pubsub This commit represents a bunch of work on a Mercurial side branch. As 2008-05-13 20:00:55 +00:00
rcache This commit represents a bunch of work on a Mercurial side branch. As 2008-05-13 20:00:55 +00:00
topo This commit represents a bunch of work on a Mercurial side branch. As 2008-05-13 20:00:55 +00:00