1
1
openmpi/ompi/mca/osc/pt2pt
Nathan Hjelm 362ac8b87e osc/pt2pt: fix threading issues
This commit fixes a number of threading issues discovered in
osc/pt2pt. This includes:

 - Lock the synchronization object not the module in osc_pt2pt_start.
   This fixes a race between the start function and processing post
   messages.

 - Always lock before calling cond_broadcast. Fixes a race between
   the waiting thread and signaling thread.

 - Make all atomically updated values volatile.

 - Make the module lock recursive to protect against some deadlock
   conditions. Will roll this back once the locks have been
   re-designed.

 - Mark incoming complete *after* completing an accumulate not
   before. This was causing an incorrect answer under certain
   conditions.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-02-01 10:33:01 -07:00
..
configure.m4 Revert "Update to sync with OMPI master and cleanup to build" 2016-11-22 15:03:20 -08:00
Makefile.am Revert "Update to sync with OMPI master and cleanup to build" 2016-11-22 15:03:20 -08:00
osc_pt2pt_active_target.c osc/pt2pt: fix threading issues 2017-02-01 10:33:01 -07:00
osc_pt2pt_comm.c osc/pt2pt: fix threading issues 2017-02-01 10:33:01 -07:00
osc_pt2pt_component.c osc/pt2pt: fix threading issues 2017-02-01 10:33:01 -07:00
osc_pt2pt_data_move.c osc/pt2pt: fix threading issues 2017-02-01 10:33:01 -07:00
osc_pt2pt_data_move.h Revert "Update to sync with OMPI master and cleanup to build" 2016-11-22 15:03:20 -08:00
osc_pt2pt_frag.c Revert "Update to sync with OMPI master and cleanup to build" 2016-11-22 15:03:20 -08:00
osc_pt2pt_frag.h Revert "Update to sync with OMPI master and cleanup to build" 2016-11-22 15:03:20 -08:00
osc_pt2pt_header.h Revert "Update to sync with OMPI master and cleanup to build" 2016-11-22 15:03:20 -08:00
osc_pt2pt_module.c osc/pt2pt: fix threading issues 2017-02-01 10:33:01 -07:00
osc_pt2pt_passive_target.c osc/pt2pt: fix threading issues 2017-02-01 10:33:01 -07:00
osc_pt2pt_pending_frag.h Revert "Update to sync with OMPI master and cleanup to build" 2016-11-22 15:03:20 -08:00
osc_pt2pt_request.c Revert "Update to sync with OMPI master and cleanup to build" 2016-11-22 15:03:20 -08:00
osc_pt2pt_request.h Revert "Update to sync with OMPI master and cleanup to build" 2016-11-22 15:03:20 -08:00
osc_pt2pt_sync.c Revert "Update to sync with OMPI master and cleanup to build" 2016-11-22 15:03:20 -08:00
osc_pt2pt_sync.h osc/pt2pt: fix threading issues 2017-02-01 10:33:01 -07:00
osc_pt2pt.h osc/pt2pt: fix threading issues 2017-02-01 10:33:01 -07:00
owner.txt Revert "Update to sync with OMPI master and cleanup to build" 2016-11-22 15:03:20 -08:00