osc/rdma: fix regression introduced by eed7b45db5
The ompi_osc_signal_outgoing was moved from ompi_osc_rdma_frag_start to frag_send which gave correct results for the bug reproducer but hangs with simple OSC tests. Moved the ompi_osc_signal_outgoing back and it now passes all tests. Closes #256
Этот коммит содержится в:
родитель
ca0b969991
Коммит
672d96704c
@ -66,10 +66,6 @@ frag_send(ompi_osc_rdma_module_t *module,
|
|||||||
"osc rdma: frag_send called to %d, frag = %p, count = %d",
|
"osc rdma: frag_send called to %d, frag = %p, count = %d",
|
||||||
frag->target, (void *) frag, count));
|
frag->target, (void *) frag, count));
|
||||||
|
|
||||||
/* we need to signal now that a frag is outgoing to ensure the count sent
|
|
||||||
* with the unlock message is correct */
|
|
||||||
ompi_osc_signal_outgoing (module, frag->target, 1);
|
|
||||||
|
|
||||||
return ompi_osc_rdma_isend_w_cb (frag->buffer, count, MPI_BYTE, frag->target, OSC_RDMA_FRAG_TAG,
|
return ompi_osc_rdma_isend_w_cb (frag->buffer, count, MPI_BYTE, frag->target, OSC_RDMA_FRAG_TAG,
|
||||||
module->comm, frag_send_cb, frag);
|
module->comm, frag_send_cb, frag);
|
||||||
}
|
}
|
||||||
@ -84,6 +80,10 @@ ompi_osc_rdma_frag_start(ompi_osc_rdma_module_t *module,
|
|||||||
assert(0 == frag->pending);
|
assert(0 == frag->pending);
|
||||||
assert(module->peers[frag->target].active_frag != frag);
|
assert(module->peers[frag->target].active_frag != frag);
|
||||||
|
|
||||||
|
/* we need to signal now that a frag is outgoing to ensure the count sent
|
||||||
|
* with the unlock message is correct */
|
||||||
|
ompi_osc_signal_outgoing (module, frag->target, 1);
|
||||||
|
|
||||||
/* if eager sends are not active, can't send yet, so buffer and
|
/* if eager sends are not active, can't send yet, so buffer and
|
||||||
get out... */
|
get out... */
|
||||||
if (module->passive_target_access_epoch) {
|
if (module->passive_target_access_epoch) {
|
||||||
|
Загрузка…
Ссылка в новой задаче
Block a user