1
1
openmpi/ompi/runtime
Ralph Castain 27f3d417ca Revert the MPI_Init fence operations to use volatile bool instead of thread macros.
The problem is that the waiting thread is cycling using OMPI_LAZY_WAIT_FOR_COMPLETION so it can exercise opal_progress. This probably isn't as critical for the modex step, but definitely necessary for the barrier at the end of mpi_init. The problem this creates is that the lazy macro exits as soon as "active" becomes false, and then we destruct the lock.

However, wakeup_thread sets "active" to false - and then calls the condition broadcast to wakeup any waiting threads. So there is a race condition between that broadcast and the lock destruct.

Add OPAL_ACQUIRE_OBJECT and OPAL_POST_OBJECT memory barriers to help protect against thread race conditions on some platforms

Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-10-31 08:09:02 -07:00
..
help-mpi-runtime.txt Update the connect/accept support so we check to see if we have the proper infrastructure and RTE support, including whether we have ompi-server available if the connect/accept spans multiple applications. Print pretty help messages in all cases where we do not have support 2017-05-27 10:47:08 -07:00
Makefile.am build: Custom libmpi(_FOO) name option in configure 2016-09-29 21:47:24 -05:00
mpiruntime.h init/finalize: extensions 2015-10-15 12:39:15 -04:00
ompi_cr.c Move the collective structure outside the communicator. 2017-02-27 11:54:17 -06:00
ompi_cr.h Purge whitespace from the repo 2015-06-23 20:59:57 -07:00
ompi_info_support.c opal: fix multiple bugs in MCA and opal 2015-04-07 19:13:20 -06:00
ompi_info_support.h tools: Add oshmem_info utility 2013-10-12 19:03:32 +00:00
ompi_mpi_abort.c Use same prefix format for [host:pid] 2017-06-08 19:35:03 +09:00
ompi_mpi_dynamics.c mpi: infrastructure to gracefully disable MPI dyn procs 2015-10-14 13:42:56 -07:00
ompi_mpi_finalize.c Revert the MPI_Init fence operations to use volatile bool instead of thread macros. 2017-10-31 08:09:02 -07:00
ompi_mpi_init.c Revert the MPI_Init fence operations to use volatile bool instead of thread macros. 2017-10-31 08:09:02 -07:00
ompi_mpi_params.c fix srun latency, change default yield_when_idle=0 2017-07-27 09:41:48 +02:00
ompi_mpi_preconnect.c ompi: use ompi_coll_base_sendrecv_actual() whenever possible 2017-04-20 10:01:28 +09:00
params.h Add an experimental ability to skip the RTE barriers at the end of MPI_Init and the beginning of MPI_Finalize 2016-06-01 17:01:15 -07:00