Added a new macro for preparing send descriptors.
This commit was SVN r2586.
Этот коммит содержится в:
родитель
6eb4391a3c
Коммит
85ea6e24dc
@ -453,6 +453,8 @@ int mca_ptl_ib_peer_connect(mca_ptl_ib_state_t *ib_state,
|
||||
{
|
||||
int rc, i;
|
||||
VAPI_ret_t ret;
|
||||
VAPI_qp_num_t qp_num;
|
||||
ib_buffer_t *ib_buf_ptr;
|
||||
|
||||
/* Establish Reliable Connection */
|
||||
rc = mca_ptl_ib_rc_qp_init(ib_state->nic,
|
||||
@ -479,6 +481,8 @@ int mca_ptl_ib_peer_connect(mca_ptl_ib_state_t *ib_state,
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
||||
qp_num = peer_conn->rres->qp_num;
|
||||
|
||||
/* Register the buffers */
|
||||
for(i = 0; i < NUM_IB_SEND_BUF; i++) {
|
||||
|
||||
@ -488,12 +492,14 @@ int mca_ptl_ib_peer_connect(mca_ptl_ib_state_t *ib_state,
|
||||
if(rc != OMPI_SUCCESS) {
|
||||
return OMPI_ERROR;
|
||||
}
|
||||
|
||||
ib_buf_ptr = &peer_conn->lres->send[i];
|
||||
|
||||
IB_PREPARE_SEND_DESC(ib_buf_ptr, qp_num);
|
||||
}
|
||||
|
||||
for(i = 0; i < NUM_IB_RECV_BUF; i++) {
|
||||
|
||||
ib_buffer_t *ib_buf_ptr;
|
||||
|
||||
rc = mca_ptl_ib_register_mem(ib_state->nic, ib_state->ptag,
|
||||
(void*) peer_conn->lres->recv[i].buf,
|
||||
4096, &peer_conn->lres->recv[i].hndl);
|
||||
@ -501,7 +507,9 @@ int mca_ptl_ib_peer_connect(mca_ptl_ib_state_t *ib_state,
|
||||
return OMPI_ERROR;
|
||||
}
|
||||
|
||||
IB_PREPARE_RECV_DESC((&peer_conn->lres->recv[i]));
|
||||
ib_buf_ptr = &peer_conn->lres->recv[i];
|
||||
|
||||
IB_PREPARE_RECV_DESC(ib_buf_ptr);
|
||||
}
|
||||
|
||||
/* Post receives */
|
||||
|
@ -151,6 +151,21 @@ typedef struct mca_ptl_ib_peer_conn_t mca_ptl_ib_peer_conn_t;
|
||||
(MT_virt_addr_t) ib_buf_ptr->buf; \
|
||||
}
|
||||
|
||||
#define IB_PREPARE_SEND_DESC(ib_buf_ptr, qp) { \
|
||||
ib_buf_ptr->desc.sr.comp_type = VAPI_SIGNALED; \
|
||||
ib_buf_ptr->desc.sr.opcode = VAPI_SEND; \
|
||||
ib_buf_ptr->desc.sr.remote_qkey = 0; \
|
||||
ib_buf_ptr->desc.sr.remote_qp = qp; \
|
||||
ib_buf_ptr->desc.sr.id = (VAPI_virt_addr_t) \
|
||||
(MT_virt_addr_t) ib_buf_ptr; \
|
||||
ib_buf_ptr->desc.rr.sg_lst_len = 1; \
|
||||
ib_buf_ptr->desc.rr.sg_lst_p = &ib_buf_ptr->desc.sg_entry; \
|
||||
ib_buf_ptr->desc.sg_entry.len = 4096; \
|
||||
ib_buf_ptr->desc.sg_entry.lkey = ib_buf_ptr->hndl.lkey; \
|
||||
ib_buf_ptr->desc.sg_entry.addr = (VAPI_virt_addr_t) \
|
||||
(MT_virt_addr_t) ib_buf_ptr->buf; \
|
||||
}
|
||||
|
||||
int mca_ptl_ib_init_module(mca_ptl_ib_state_t*, int);
|
||||
int mca_ptl_ib_get_num_hcas(uint32_t*);
|
||||
int mca_ptl_ib_init_peer(mca_ptl_ib_state_t*, mca_ptl_ib_peer_conn_t*);
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user