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 90522a130cef97ffe5c0870b4a9ab6b40f17fa58 (commit) from 60a2d9fe221f4b98a611a360cf0a2ba822be6677 (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/90522a130cef97ffe5c0870b4a9ab6b40f... commit 90522a130cef97ffe5c0870b4a9ab6b40f17fa58 Author: Su Huang <[email protected]> Date: Tue Jul 9 10:09:46 2013 -0400 Fix uninitialized parameters for one sided communication in pamid (ibm) D191388 : MPICOM case with mpich2 hit Assertion failed issue (ibm) AIX71J Signed-off-by: Charles Archer <[email protected]> diff --git a/src/mpid/pamid/src/onesided/mpid_win_get.c b/src/mpid/pamid/src/onesided/mpid_win_get.c index d9eaf93..79a1c0b 100644 --- a/src/mpid/pamid/src/onesided/mpid_win_get.c +++ b/src/mpid/pamid/src/onesided/mpid_win_get.c @@ -65,28 +65,19 @@ MPIDI_Get_use_pami_rget(pami_context_t context, MPIDI_Win_request * req, int *fr { pami_result_t rc; void *map=NULL; + pami_rget_simple_t params; - pami_rget_simple_t params = { - .rma = { - .dest = req->dest, - .hints = { - .buffer_registered = PAMI_HINT_ENABLE, - .use_rdma = PAMI_HINT_ENABLE, - }, - .bytes = 0, - .cookie = req, - .done_fn = MPIDI_Win_DoneCB, - }, - .rdma = { - .local = { - .mr = &req->origin.memregion, - }, - .remote = { - .mr = &req->win->mpid.info[req->target.rank].memregion, - .offset = req->offset, - }, - }, - }; + params=zero_rget_parms; + + params.rma.dest=req->dest; + params.rma.hints.buffer_registered = PAMI_HINT_ENABLE; + params.rma.hints.use_rdma = PAMI_HINT_ENABLE; + params.rma.bytes = 0; + params.rma.cookie = req; + params.rma.done_fn = MPIDI_Win_DoneCB; + params.rdma.local.mr=&req->origin.memregion; + params.rdma.remote.mr=&req->win->mpid.info[req->target.rank].memregion; + params.rdma.remote.offset= req->offset; struct MPIDI_Win_sync* sync = &req->win->mpid.sync; TRACE_ERR("Start index=%u/%d l-addr=%p r-base=%p r-offset=%zu (sync->started=%u sync->complete=%u)\n", @@ -136,25 +127,20 @@ MPIDI_Get_use_pami_get(pami_context_t context, MPIDI_Win_request * req, int *fre { pami_result_t rc; void *map=NULL; + pami_get_simple_t params; + + params=zero_get_parms; - pami_get_simple_t params = { - .rma = { - .dest = req->dest, - .hints = { - .use_rdma = PAMI_HINT_DEFAULT, + params.rma.dest=req->dest; + params.rma.hints.use_rdma = PAMI_HINT_DEFAULT; #ifndef OUT_OF_ORDER_HANDLING - .no_long_header= 1, + params.rma.hints.no_long_header= 1, #endif - }, - .bytes = 0, - .cookie = req, - .done_fn = MPIDI_Win_DoneCB, - }, - .addr = { - .local = req->buffer, - .remote = req->win->mpid.info[req->target.rank].base_addr, - }, - }; + params.rma.bytes = 0; + params.rma.cookie = req; + params.rma.done_fn = MPIDI_Win_DoneCB; + params.addr.local=req->buffer; + params.addr.remote= req->win->mpid.info[req->target.rank].base_addr; struct MPIDI_Win_sync* sync = &req->win->mpid.sync; TRACE_ERR("Start index=%u/%d l-addr=%p r-base=%p r-offset=%zu (sync->started=%u sync->complete=%u)\n", diff --git a/src/mpid/pamid/src/onesided/mpid_win_put.c b/src/mpid/pamid/src/onesided/mpid_win_put.c index 92fb477..ecfd444 100644 --- a/src/mpid/pamid/src/onesided/mpid_win_put.c +++ b/src/mpid/pamid/src/onesided/mpid_win_put.c @@ -67,7 +67,7 @@ MPIDI_Put_use_pami_rput(pami_context_t context, MPIDI_Win_request * req,int *fre void *map; pami_rput_simple_t params; /* params need to zero out to avoid passing garbage to PAMI */ - memset((void *) ¶ms,0,sizeof(pami_rput_simple_t)); + params=zero_rput_parms; params.rma.dest=req->dest; params.rma.hints.buffer_registered = PAMI_HINT_ENABLE; @@ -129,28 +129,22 @@ MPIDI_Put_use_pami_put(pami_context_t context, MPIDI_Win_request * req,int *fr { pami_result_t rc; void *map; + pami_put_simple_t params; - pami_put_simple_t params = { - .rma = { - .dest = req->dest, - .hints = { - .use_rdma= PAMI_HINT_DEFAULT, + params = zero_put_parms; + + params.rma.dest=req->dest; + params.rma.hints.use_rdma = PAMI_HINT_DEFAULT; #ifndef OUT_OF_ORDER_HANDLING - .no_long_header= 1, + params.rma.hints.no_long_header= 1, #endif - }, - .bytes = 0, - .cookie = req, - .done_fn = NULL, - }, - .addr = { - .local = req->buffer, - .remote = req->win->mpid.info[req->target.rank].base_addr, - }, - .put = { - .rdone_fn = MPIDI_Win_DoneCB, - }, - }; + params.rma.bytes = 0; + params.rma.cookie = req; + params.rma.done_fn = NULL; + params.addr.local=req->buffer; + params.addr.remote=req->win->mpid.info[req->target.rank].base_addr; + params.put.rdone_fn= MPIDI_Win_DoneCB; + struct MPIDI_Win_sync* sync = &req->win->mpid.sync; TRACE_ERR("Start index=%u/%d l-addr=%p r-base=%p r-offset=%zu (sync->started=%u sync->complete=%u)\n", req->state.index, req->target.dt.num_contig, req->buffer, req->win->mpid.info[req->target.rank].base_addr, req->offset, sync->started, sync->complete); diff --git a/src/mpid/pamid/src/onesided/mpidi_onesided.h b/src/mpid/pamid/src/onesided/mpidi_onesided.h index d2f7024..af888bd 100644 --- a/src/mpid/pamid/src/onesided/mpidi_onesided.h +++ b/src/mpid/pamid/src/onesided/mpidi_onesided.h @@ -24,6 +24,10 @@ #ifndef __src_onesided_mpidi_onesided_h__ #define __src_onesided_mpidi_onesided_h__ +pami_rget_simple_t zero_rget_parms; +pami_get_simple_t zero_get_parms; +pami_rput_simple_t zero_rput_parms; +pami_put_simple_t zero_put_parms; /** * \brief One-sided Message Types ----------------------------------------------------------------------- Summary of changes: src/mpid/pamid/src/onesided/mpid_win_get.c | 60 ++++++++++---------------- src/mpid/pamid/src/onesided/mpid_win_put.c | 34 ++++++--------- src/mpid/pamid/src/onesided/mpidi_onesided.h | 4 ++ 3 files changed, 41 insertions(+), 57 deletions(-) hooks/post-receive -- MPICH primary repository