1
1

Fix issue where messages could start arriving before the window was

fully initialized, especially during lock/unlock, which doesn't use MPI
collectives for synchronization (unlike Fence)

This commit was SVN r12676.
Этот коммит содержится в:
Brian Barrett 2006-11-27 22:42:21 +00:00
родитель b5b6f4c4bf
Коммит bc3250fe6f
2 изменённых файлов: 9 добавлений и 6 удалений

Просмотреть файл

@ -24,6 +24,7 @@
#include "ompi/win/win.h" #include "ompi/win/win.h"
#include "ompi/communicator/communicator.h" #include "ompi/communicator/communicator.h"
#include "ompi/mca/btl/btl.h" #include "ompi/mca/btl/btl.h"
#include "ompi/mca/osc/base/base.h"
#include "mpi.h" #include "mpi.h"
@ -38,6 +39,9 @@ ompi_osc_rdma_module_free(ompi_win_t *win)
opal_progress(); opal_progress();
} }
opal_output_verbose(50, ompi_osc_base_output,
"Finalizing window %d", module->p2p_comm->c_contextid);
/* finish with a barrier */ /* finish with a barrier */
if (ompi_group_size(win->w_group) > 1) { if (ompi_group_size(win->w_group) > 1) {
ret = module->p2p_comm->c_coll.coll_barrier(module->p2p_comm); ret = module->p2p_comm->c_coll.coll_barrier(module->p2p_comm);

Просмотреть файл

@ -419,13 +419,12 @@ ompi_osc_rdma_component_select(ompi_win_t *win,
NULL); NULL);
} }
/* need to make create a collective, or lock requests can come in
before the window is fully created... */
module->p2p_comm->c_coll.coll_barrier(module->p2p_comm);
if (module->p2p_eager_send) { opal_output_verbose(50, ompi_osc_base_output,
/* need to barrier if eager sending or we can receive before the "created window %d", module->p2p_comm->c_contextid);
other side has been fully setup, causing much gnashing of
teeth. */
module->p2p_comm->c_coll.coll_barrier(module->p2p_comm);
}
return ret; return ret;
} }