As Rich stated, the original design of the SM BTL included [some]
support for dynamic processes. Over the years, by lack of interest and
man-power this support was more or less dropped. Some pieces of the
code were removed or disabled, but apparently not everything.
However, lately the
Well, and we only allocate extra FIFOs, but we don't initialize them.
Also, the eager free list is initially set up to grow with the number of
connections (some attempt to avoid deadlock, I imagine), but this
initial eager free list size doesn't account for the extra procs either.
So, shall
Not needed now. Since we did not want to deal with trying to grow the
shared memory file after it's allocation, with all the required
synchronization, we allocated extra memory up front - for dynamic process
control. Since this has never been enabled, we really don't need this extra
memory.
Why does the sm BTL allocate "extra procs"?
E.g.,
https://svn.open-mpi.org/trac/ompi/browser/branches/v1.3/ompi/mca/btl/sm/btl_sm.c?version=19785#L403
In particular:
*) sm_max_procs is -1 (so there is no max)
*) sm_sm_extra_procs (sic, this is the ompi_info name) is 2
So, if there are n