[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.1.1-79-g877fa1a
Service Account
noreply at mpich.org
Fri Jul 11 14:07:19 CDT 2014
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via 877fa1a6bec9b3377f73b7c905f3d57651c4048c (commit)
from f7aa87dfa660a204a2b63bedc7a07245f74cb43f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/877fa1a6bec9b3377f73b7c905f3d57651c4048c
commit 877fa1a6bec9b3377f73b7c905f3d57651c4048c
Author: Su Huang <suhuang at us.ibm.com>
Date: Thu Jul 10 16:40:58 2014 -0400
pamid: Data integrity error hit in MPI_Win_allocate_shared windows(LE)
MPI_Win_shared_query() currently returns the base address of the passed in rank.
All tasks other than task 0 assume that the first set of data belongs to task 0,
second set belongs to task 1 and so on. The assumption caused the data integrity
problem found by win_shared.c.
To fix the problem, instead of returning the base address of a rank,
MPI_Win_shared_query() should return the base address of shared segment
allocated for the window.
(ibm) D198663
Signed-off-by: Michael Blocksome <blocksom at us.ibm.com>
diff --git a/src/mpid/pamid/src/onesided/mpid_win_shared_query.c b/src/mpid/pamid/src/onesided/mpid_win_shared_query.c
index aef5458..55ca3a0 100644
--- a/src/mpid/pamid/src/onesided/mpid_win_shared_query.c
+++ b/src/mpid/pamid/src/onesided/mpid_win_shared_query.c
@@ -47,17 +47,16 @@ MPID_Win_shared_query(MPID_Win *win, int rank, MPI_Aint *size,
if (rank == MPI_PROC_NULL) {
for (i=0; i<win->comm_ptr->local_size; ++i) {
if (win->mpid.info[i].base_size != 0) {
- *((void **) base_ptr) = win->mpid.info[i].base_addr;
*size = win->mpid.info[i].base_size;
*disp_unit = win->mpid.info[i].disp_unit;
break;
}
}
} else {
- *((void **) base_ptr) = win->mpid.info[rank].base_addr;
*size = win->mpid.info[rank].base_size;
*disp_unit = win->mpid.info[rank].disp_unit;
}
+ *((void **) base_ptr) = win->base; /* should return the begin. address of shared segment */
return mpi_errno;
}
-----------------------------------------------------------------------
Summary of changes:
.../pamid/src/onesided/mpid_win_shared_query.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
hooks/post-receive
--
MPICH primary repository
More information about the commits
mailing list