Hi, well we currently try to change over to ofed. The same time we try to change to openmpi-1.2.1 from openpi-1.2b3, unfortunately we get a SEGV in mpiexec ;-)
Cheerio, Luis > Greetings and thanks for the patch! > > We actually made this change on the development trunk but never moved > it to the release branch. See https://svn.open-mpi.org/trac/ompi/ > changeset/13709 > > The problem is that we accidentally used a gcc-ism in the mvapi BTL > (i.e., the older InfiniBand driver). We didn't think too many people > were using the mvapi BTL, and therefore didn't move it over to the > v1.2 branch. Sorry about that! > > Do you have a strong requirement for using mvapi? Specifically, is > there any chance that you can upgrade to OFED? I ask because all > current and future OMPI work for InfiniBand is being done in the > openib BTL (not the mvapi BTL -- other than this fix, we haven't made > any changes to the mvapi BTL for a long, long time). > > See http://www.open-mpi.org/faq/?category=openfabrics#vapi-support. > > > > On May 16, 2007, at 12:08 AM, Luis Kornblueh wrote: > > > Hi everybody, > > > > we tried to install openmpi with Sun cc on Linux. IT required some > > patches. I add the necessary pathces here. I hope you can include > > those. > > > > Cheerio, > > Luis > > > > diff -Naur openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi.c > > openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi.c > > --- openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi.c 2007-04-19 > > 18:30:54.000000000 +0200 > > +++ openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi.c 2007-05-09 > > 14:33:24.000000000 +0200 > > @@ -463,7 +463,7 @@ > > mca_btl_mvapi_frag_t* frag = (mca_btl_mvapi_frag_t*)descriptor; > > frag->endpoint = endpoint; > > frag->hdr->tag = tag; > > - frag->sr_desc.opcode = VAPI_SEND; > > + frag->desc.sr_desc.opcode = VAPI_SEND; > > return mca_btl_mvapi_endpoint_send(endpoint, frag); > > } > > > > @@ -481,7 +481,7 @@ > > > > /* setup for queued requests */ > > frag->endpoint = endpoint; > > - frag->sr_desc.opcode = VAPI_RDMA_WRITE; > > + frag->desc.sr_desc.opcode = VAPI_RDMA_WRITE; > > > > /* check for a send wqe */ > > if (OPAL_THREAD_ADD32(&endpoint->sd_wqe_lp,-1) < 0) { > > @@ -494,12 +494,12 @@ > > /* post descriptor */ > > } else { > > > > - frag->sr_desc.remote_qp = endpoint->rem_info.rem_qp_num_lp; > > - frag->sr_desc.remote_addr = (VAPI_virt_addr_t) frag- > > >base.des_dst->seg_addr.lval; > > - frag->sr_desc.r_key = frag->base.des_dst->seg_key.key32[0]; > > + frag->desc.sr_desc.remote_qp = endpoint- > > >rem_info.rem_qp_num_lp; > > + frag->desc.sr_desc.remote_addr = (VAPI_virt_addr_t) frag- > > >base.des_dst->seg_addr.lval; > > + frag->desc.sr_desc.r_key = frag->base.des_dst- > > >seg_key.key32[0]; > > frag->sg_entry.addr = (VAPI_virt_addr_t) (MT_virt_addr_t) > > frag->base.des_src->seg_addr.pval; > > frag->sg_entry.len = frag->base.des_src->seg_len; > > - if(VAPI_OK != VAPI_post_sr(mvapi_btl->nic, endpoint- > > >lcl_qp_hndl_lp, &frag->sr_desc)) { > > + if(VAPI_OK != VAPI_post_sr(mvapi_btl->nic, endpoint- > > >lcl_qp_hndl_lp, &frag->desc.sr_desc)) { > > rc = OMPI_ERROR; > > } else { > > rc = OMPI_SUCCESS; > > @@ -531,7 +531,7 @@ > > mca_btl_mvapi_frag_t* frag = (mca_btl_mvapi_frag_t*) descriptor; > > > > frag->endpoint = endpoint; > > - frag->sr_desc.opcode = VAPI_RDMA_READ; > > + frag->desc.sr_desc.opcode = VAPI_RDMA_READ; > > > > /* check for a send wqe */ > > if (OPAL_THREAD_ADD32(&endpoint->sd_wqe_lp,-1) < 0) { > > @@ -555,13 +555,13 @@ > > > > } else { > > > > - frag->sr_desc.remote_qp = endpoint->rem_info.rem_qp_num_lp; > > - frag->sr_desc.remote_addr = (VAPI_virt_addr_t) frag- > > >base.des_src->seg_addr.lval; > > - frag->sr_desc.r_key = frag->base.des_src->seg_key.key32[0]; > > + frag->desc.sr_desc.remote_qp = endpoint- > > >rem_info.rem_qp_num_lp; > > + frag->desc.sr_desc.remote_addr = (VAPI_virt_addr_t) frag- > > >base.des_src->seg_addr.lval; > > + frag->desc.sr_desc.r_key = frag->base.des_src- > > >seg_key.key32[0]; > > frag->sg_entry.addr = (VAPI_virt_addr_t) (MT_virt_addr_t) > > frag->base.des_dst->seg_addr.pval; > > frag->sg_entry.len = frag->base.des_dst->seg_len; > > > > - if(VAPI_OK != VAPI_post_sr(mvapi_btl->nic, endpoint- > > >lcl_qp_hndl_lp, &frag->sr_desc)) { > > + if(VAPI_OK != VAPI_post_sr(mvapi_btl->nic, endpoint- > > >lcl_qp_hndl_lp, &frag->desc.sr_desc)) { > > rc = OMPI_ERROR; > > } else { > > rc = OMPI_SUCCESS; > > diff -Naur openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi_endpoint.c > > openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi_endpoint.c > > --- openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi_endpoint.c > > 2007-04-19 18:30:54.000000000 +0200 > > +++ openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi_endpoint.c > > 2007-05-09 14:45:31.000000000 +0200 > > @@ -143,7 +143,7 @@ > > } > > } > > > > - frag->sr_desc.remote_qkey = 0; > > + frag->desc.sr_desc.remote_qkey = 0; > > frag->sg_entry.addr = (VAPI_virt_addr_t) (MT_virt_addr_t) frag- > > >hdr; > > frag->sg_entry.len = > > frag->segment.seg_len + sizeof(mca_btl_mvapi_header_t) + > > @@ -153,14 +153,14 @@ > > mca_btl_mvapi_footer_t* ftr = > > (mca_btl_mvapi_footer_t*)(((char*)frag- > > >segment.seg_addr.pval) + > > frag->segment.seg_len); > > - frag->sr_desc.opcode = VAPI_RDMA_WRITE; > > + frag->desc.sr_desc.opcode = VAPI_RDMA_WRITE; > > MCA_BTL_MVAPI_RDMA_FRAG_SET_SIZE(ftr, frag->sg_entry.len); > > MCA_BTL_MVAPI_RDMA_MAKE_LOCAL(ftr); > > #ifdef OMPI_ENABLE_DEBUG > > ftr->seq = endpoint->eager_rdma_remote.seq++; > > #endif > > - frag->sr_desc.r_key = (VAPI_rkey_t)endpoint- > > >eager_rdma_remote.rkey; > > - frag->sr_desc.remote_addr = (VAPI_virt_addr_t) > > + frag->desc.sr_desc.r_key = (VAPI_rkey_t)endpoint- > > >eager_rdma_remote.rkey; > > + frag->desc.sr_desc.remote_addr = (VAPI_virt_addr_t) > > endpoint->eager_rdma_remote.base.lval + > > endpoint->eager_rdma_remote.head * > > mvapi_btl->eager_rdma_frag_size + > > @@ -168,17 +168,17 @@ > > sizeof(mca_btl_mvapi_header_t) + > > frag->size + > > sizeof(mca_btl_mvapi_footer_t); > > - frag->sr_desc.remote_addr -= frag->sg_entry.len; > > + frag->desc.sr_desc.remote_addr -= frag->sg_entry.len; > > MCA_BTL_MVAPI_RDMA_NEXT_INDEX (endpoint- > > >eager_rdma_remote.head); > > } else { > > - frag->sr_desc.opcode = VAPI_SEND; > > + frag->desc.sr_desc.opcode = VAPI_SEND; > > } > > > > > > if(frag->sg_entry.len <= mvapi_btl->ib_inline_max) { > > - ret = EVAPI_post_inline_sr(mvapi_btl->nic, qp_hndl, &frag- > > >sr_desc); > > + ret = EVAPI_post_inline_sr(mvapi_btl->nic, qp_hndl, &frag- > > >desc.sr_desc); > > } else { > > - ret = VAPI_post_sr(mvapi_btl->nic, qp_hndl, &frag->sr_desc); > > + ret = VAPI_post_sr(mvapi_btl->nic, qp_hndl, &frag- > > >desc.sr_desc); > > } > > > > if(VAPI_OK != ret) { > > @@ -1072,15 +1072,15 @@ > > OPAL_THREAD_ADD32(&endpoint->rd_credits_lp, -frag->hdr->credits); > > ((mca_btl_mvapi_control_header_t *)frag- > > >segment.seg_addr.pval)->type = MCA_BTL_MVAPI_CONTROL_NOOP; > > > > - frag->sr_desc.opcode = VAPI_SEND; > > + frag->desc.sr_desc.opcode = VAPI_SEND; > > frag->sg_entry.addr = (VAPI_virt_addr_t) (MT_virt_addr_t) frag- > > >hdr; > > frag->sg_entry.len = sizeof(mca_btl_mvapi_header_t) + > > sizeof(mca_btl_mvapi_control_header_t); > > > > if(sizeof(mca_btl_mvapi_header_t) <= mvapi_btl->ib_inline_max) { > > - ret = EVAPI_post_inline_sr(mvapi_btl->nic, endpoint- > > >lcl_qp_hndl_lp, &frag->sr_desc); > > + ret = EVAPI_post_inline_sr(mvapi_btl->nic, endpoint- > > >lcl_qp_hndl_lp, &frag->desc.sr_desc); > > } else { > > - ret = VAPI_post_sr(mvapi_btl->nic, endpoint- > > >lcl_qp_hndl_lp, &frag->sr_desc); > > + ret = VAPI_post_sr(mvapi_btl->nic, endpoint- > > >lcl_qp_hndl_lp, &frag->desc.sr_desc); > > } > > if(ret != VAPI_SUCCESS) { > > OPAL_THREAD_ADD32(&endpoint->sd_credits_lp, -1); > > @@ -1151,15 +1151,15 @@ > > ((mca_btl_mvapi_control_header_t *)frag- > > >segment.seg_addr.pval)->type = MCA_BTL_MVAPI_CONTROL_NOOP; > > > > > > - frag->sr_desc.opcode = VAPI_SEND; > > + frag->desc.sr_desc.opcode = VAPI_SEND; > > frag->sg_entry.addr = (VAPI_virt_addr_t) (MT_virt_addr_t) frag- > > >hdr; > > frag->sg_entry.len = sizeof(mca_btl_mvapi_header_t) + > > sizeof(mca_btl_mvapi_control_header_t); > > > > if(sizeof(mca_btl_mvapi_header_t) <= mvapi_btl->ib_inline_max) { > > - ret = EVAPI_post_inline_sr(mvapi_btl->nic, endpoint- > > >lcl_qp_hndl_hp, &frag->sr_desc); > > + ret = EVAPI_post_inline_sr(mvapi_btl->nic, endpoint- > > >lcl_qp_hndl_hp, &frag->desc.sr_desc); > > } else { > > - ret = VAPI_post_sr(mvapi_btl->nic, endpoint- > > >lcl_qp_hndl_hp, &frag->sr_desc); > > + ret = VAPI_post_sr(mvapi_btl->nic, endpoint- > > >lcl_qp_hndl_hp, &frag->desc.sr_desc); > > } > > if(ret != VAPI_SUCCESS) { > > OPAL_THREAD_ADD32(&endpoint->sd_credits_lp, -1); > > diff -Naur openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi_endpoint.h > > openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi_endpoint.h > > --- openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi_endpoint.h > > 2007-04-19 18:30:54.000000000 +0200 > > +++ openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi_endpoint.h > > 2007-05-09 14:38:43.000000000 +0200 > > @@ -234,7 +234,7 @@ > > frag->sg_entry.len = frag->size + \ > > ((unsigned char*) frag->segment.seg_addr.pval- \ > > (unsigned char*) frag->hdr); \ > > - desc_post[i] = frag->rr_desc; \ > > + desc_post[i] = frag->desc.rr_desc; \ > > }\ > > rc = EVAPI_post_rr_list( nic, \ > > qp, \ > > diff -Naur openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi_frag.c > > openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi_frag.c > > --- openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi_frag.c 2007-04-19 > > 18:30:54.000000000 +0200 > > +++ openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi_frag.c > > 2007-05-09 14:47:38.000000000 +0200 > > @@ -43,12 +43,12 @@ > > frag->base.des_dst = NULL; > > frag->base.des_dst_cnt = 0; > > > > - frag->sr_desc.comp_type = VAPI_SIGNALED; > > - frag->sr_desc.opcode = VAPI_SEND; > > - frag->sr_desc.remote_qkey = 0; > > - frag->sr_desc.sg_lst_len = 1; > > - frag->sr_desc.sg_lst_p = &frag->sg_entry; > > - frag->sr_desc.id = (VAPI_virt_addr_t) (MT_virt_addr_t) frag; > > + frag->desc.sr_desc.comp_type = VAPI_SIGNALED; > > + frag->desc.sr_desc.opcode = VAPI_SEND; > > + frag->desc.sr_desc.remote_qkey = 0; > > + frag->desc.sr_desc.sg_lst_len = 1; > > + frag->desc.sr_desc.sg_lst_p = &frag->sg_entry; > > + frag->desc.sr_desc.id = (VAPI_virt_addr_t) (MT_virt_addr_t) frag; > > > > } > > > > @@ -61,11 +61,11 @@ > > frag->base.des_src = NULL; > > frag->base.des_src_cnt = 0; > > > > - frag->rr_desc.comp_type = VAPI_SIGNALED; > > - frag->rr_desc.opcode = VAPI_RECEIVE; > > - frag->rr_desc.sg_lst_len = 1; > > - frag->rr_desc.sg_lst_p = &frag->sg_entry; > > - frag->rr_desc.id = (VAPI_virt_addr_t) (MT_virt_addr_t) frag; > > + frag->desc.rr_desc.comp_type = VAPI_SIGNALED; > > + frag->desc.rr_desc.opcode = VAPI_RECEIVE; > > + frag->desc.rr_desc.sg_lst_len = 1; > > + frag->desc.rr_desc.sg_lst_p = &frag->sg_entry; > > + frag->desc.rr_desc.id = (VAPI_virt_addr_t) (MT_virt_addr_t) frag; > > > > > > } > > diff -Naur openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi_frag.h > > openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi_frag.h > > --- openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi_frag.h 2007-04-19 > > 18:30:54.000000000 +0200 > > +++ openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi_frag.h > > 2007-05-09 14:31:08.000000000 +0200 > > @@ -92,7 +92,7 @@ > > union{ > > VAPI_rr_desc_t rr_desc; > > VAPI_sr_desc_t sr_desc; > > - }; > > + } desc; > > VAPI_sg_lst_entry_t sg_entry; > > mca_btl_mvapi_header_t *hdr; > > mca_btl_mvapi_footer_t *ftr; > > @@ -165,7 +165,7 @@ > > > > #define MCA_BTL_IB_FRAG_PROGRESS(frag) \ > > do { \ > > - switch(frag->sr_desc.opcode) { \ > > + switch(frag->desc.sr_desc.opcode) { \ > > case VAPI_SEND: \ > > if(OMPI_SUCCESS != mca_btl_mvapi_endpoint_send(frag- > > >endpoint, frag)) { \ > > BTL_ERROR(("error in posting pending send\n")); \ > > @@ -186,7 +186,7 @@ > > } \ > > break; \ > > default: \ > > - BTL_ERROR(("error in posting pending operation, invalide > > opcode %d\n", frag->sr_desc.opcode)); \ > > + BTL_ERROR(("error in posting pending operation, invalide > > opcode %d\n", frag->desc.sr_desc.opcode)); \ > > break; \ > > } \ > > } while (0) > > diff -Naur openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi.h > > openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi.h > > --- openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi.h 2007-04-19 > > 18:30:54.000000000 +0200 > > +++ openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi.h 2007-05-09 > > 14:37:23.000000000 +0200 > > @@ -260,7 +260,7 @@ > > frag->sg_entry.len = frag->size + \ > > ((unsigned char*) frag->segment.seg_addr.pval- \ > > (unsigned char*) frag->hdr); \ > > - desc_post[i] = frag->rr_desc; \ > > + desc_post[i] = frag->desc.rr_desc; \ > > }\ > > ret = VAPI_post_srq( nic, \ > > srq_hndl, \ > > > > > > -- > > \\\\\\ > > (-0^0-) > > --------------------------oOO--(_)--OOo----------------------------- > > > > Luis Kornblueh Tel. : +49-40-41173289 > > Max-Planck-Institute for Meteorology Fax. : +49-40-41173298 > > Bundesstr. 53 > > D-20146 Hamburg Email: luis.kornbl...@zmaw.de > > Federal Republic of Germany > > _______________________________________________ > > users mailing list > > us...@open-mpi.org > > http://www.open-mpi.org/mailman/listinfo.cgi/users > > > -- > Jeff Squyres > Cisco Systems > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users -- \\\\\\ (-0^0-) --------------------------oOO--(_)--OOo----------------------------- Luis Kornblueh Tel. : +49-40-41173289 Max-Planck-Institute for Meteorology Fax. : +49-40-41173298 Bundesstr. 53 D-20146 Hamburg Email: luis.kornbl...@zmaw.de Federal Republic of Germany