1
1

osc/rdma: correctly handle communications to self

mark the "self" peer OMPI_OSC_RDMA_PEER_LOCAL_BASE when
the window is dynamically created and use_cpu_atomics is set
in order to correctly handle communications to self.

Thanks Bart Janssens for reporting this issue.

Refs. open-mpi/ompi#6394

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>

(back-ported from commit open-mpi/ompi@fe05fcc11a)
Этот коммит содержится в:
Gilles Gouaillardet 2019-02-20 09:49:37 +09:00
родитель 4fd2c605d9
Коммит 749f51845b

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

@ -18,6 +18,8 @@
* Copyright (c) 2015-2017 Intel, Inc. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* Copyright (c) 2018 Cisco Systems, Inc. All rights reserved
* Copyright (c) 2019 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -720,7 +722,13 @@ static int allocate_state_shared (ompi_osc_rdma_module_t *module, void **base, s
ompi_osc_module_add_peer (module, peer);
if (MPI_WIN_FLAVOR_DYNAMIC == module->flavor || 0 == temp[i].size) {
if (MPI_WIN_FLAVOR_DYNAMIC == module->flavor) {
if (module->use_cpu_atomics && peer_rank == my_rank) {
peer->flags |= OMPI_OSC_RDMA_PEER_LOCAL_BASE;
}
/* nothing more to do */
continue;
} else if (0 == temp[i].size) {
/* nothing more to do */
continue;
}