1
1
openmpi/ompi/mca
Nathan Hjelm e968ddfe64 start bug fixes (#1729)
* mpi/start: fix bugs in cm and ob1 start functions

There were several problems with the implementation of start in Open
MPI:

 - There are no checks whatsoever on the state of the request(s)
   provided to MPI_Start/MPI_Start_all. It is erroneous to provide an
   active request to either of these calls. Since we are already
   looping over the provided requests there is little overhead in
   verifying that the request can be started.

 - Both ob1 and cm were always throwing away the request on the
   initial call to start and start_all with a particular
   request. Subsequent calls would see that the request was
   pml_complete and reuse it. This introduced a leak as the initial
   request was never freed. Since the only pml request that can
   be mpi complete but not pml complete is a buffered send the
   code to reallocate the request has been moved. To detect that
   a request is indeed mpi complete but not pml complete isend_init
   in both cm and ob1 now marks the new request as pml complete.

 - If a new request was needed the callbacks on the original request
   were not copied over to the new request. This can cause osc/pt2pt
   to hang as the incoming message callback is never called.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>

* osc/pt2pt: add request for gc after starting a new request

Starting a new receive may cause a recursive call into the pt2pt
frag receive function. If this happens and the prior request is
on the garbage collection list it could cause problems. This commit
moves the gc insert until after the new request has been posted.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2016-06-02 20:22:40 -04:00
..
bcol bcol: fix coverity issues 2016-03-18 10:59:46 -06:00
bml bml/r2: always add btl progress function 2016-05-21 15:54:04 -04:00
coll Fix comment. 2016-06-03 00:57:31 +09:00
common Purge whitespace from the repo 2015-06-23 20:59:57 -07:00
crcp opal: rework mpool and rcache frameworks 2016-03-14 10:50:41 -06:00
fbtl use the actual preadv and pwritev functions if available. That's what the fbtl interfaces have been designed for. 2016-01-07 08:29:17 -06:00
fcoll fcoll/static: fix coverity issues 2016-04-19 14:48:13 -06:00
fs remove some unused variables that can cause compilation problems on netbsd 2016-05-03 10:25:15 -05:00
io ompi_request_complete with signal 2016-06-02 11:49:12 +09:00
mtl Adding owner.txt file for PSM2 MTL. 2016-06-02 16:26:16 -07:00
op Remove stale component - I'm not going to get to it 2016-05-07 04:13:34 -07:00
osc start bug fixes (#1729) 2016-06-02 20:22:40 -04:00
pml start bug fixes (#1729) 2016-06-02 20:22:40 -04:00
rte Unlock the mutex prior to destructing it. 2016-05-19 10:36:58 -07:00
sbgp configury: test portability 2015-12-28 13:58:45 +09:00
sharedfp will rivist the addproc component later in spring, right now it is constantly in the way of doing my tests. 2016-01-20 15:05:51 -06:00
topo Merge pull request #1397 from hjelmn/enable_thread_multiple 2016-04-23 08:40:22 -06:00
vprotocol opal: rework mpool and rcache frameworks 2016-03-14 10:50:41 -06:00
Makefile.am Purge whitespace from the repo 2015-06-23 20:59:57 -07:00
mca.h Purge whitespace from the repo 2015-06-23 20:59:57 -07:00