include("../../include/msg-header.inc"); ?>
From: Luis Kornblueh (luis.kornblueh_at_[hidden])
Date: 2007-05-16 03:08:43
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.kornblueh_at_[hidden] Federal Republic of Germany