add acked items to datastructure,
fix compile issue. This commit was SVN r9178.
Этот коммит содержится в:
родитель
c6b4cc4417
Коммит
d9fd35d399
@ -22,7 +22,10 @@
|
||||
#include "pml_dr.h"
|
||||
#include "pml_dr_comm.h"
|
||||
|
||||
|
||||
OBJ_CLASS_INSTANCE(mca_pml_dr_acked_item_t,
|
||||
opal_list_item_t,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
static void mca_pml_dr_comm_proc_construct(mca_pml_dr_comm_proc_t* proc)
|
||||
{
|
||||
|
@ -89,7 +89,7 @@ OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_pml_dr_comm_t);
|
||||
|
||||
OMPI_DECLSPEC extern int mca_pml_dr_comm_init(mca_pml_dr_comm_t* dr_comm, ompi_communicator_t* ompi_comm);
|
||||
|
||||
static inline bool mac_pml_dr_comm_proc_check_acked(mca_pml_dr_comm_proc_t* proc, int32_t vfrag_id) {
|
||||
static inline bool mca_pml_dr_comm_proc_check_acked(mca_pml_dr_comm_proc_t* proc, int32_t vfrag_id) {
|
||||
mca_pml_dr_acked_item_t* item = (mca_pml_dr_acked_item_t*) proc->acked_vfrags_ptr;
|
||||
int8_t direction = 0; /* 1 is next, -1 is previous */
|
||||
while(true) {
|
||||
@ -110,7 +110,7 @@ static inline bool mac_pml_dr_comm_proc_check_acked(mca_pml_dr_comm_proc_t* proc
|
||||
}
|
||||
}
|
||||
|
||||
static inline void mac_pml_dr_comm_proc_set_acked(mca_pml_dr_comm_proc_t* proc, int32_t vfrag_id) {
|
||||
static inline void mca_pml_dr_comm_proc_set_acked(mca_pml_dr_comm_proc_t* proc, int32_t vfrag_id) {
|
||||
mca_pml_dr_acked_item_t* item = (mca_pml_dr_acked_item_t*) proc->acked_vfrags_ptr;
|
||||
int8_t direction = 0; /* 1 is next, -1 is previous */
|
||||
mca_pml_dr_acked_item_t *new_item, *next_item, *prev_item;
|
||||
|
@ -150,6 +150,9 @@ static void mca_pml_dr_recv_request_matched(
|
||||
mca_pml_dr_ack_hdr_t* ack;
|
||||
int rc;
|
||||
|
||||
mca_pml_dr_comm_proc_t* comm_proc = recvreq->req_recv.req_base.req_comm->c_pml_comm->procs +
|
||||
recvreq->req_recv.req_base.req_peer;
|
||||
|
||||
/* if this hasn't been initialized yet - this is a synchronous send */
|
||||
if(NULL == proc) {
|
||||
ompi_proc_t *ompi_proc = ompi_comm_peer_lookup(
|
||||
@ -185,6 +188,9 @@ static void mca_pml_dr_recv_request_matched(
|
||||
mca_bml_base_free(bml_btl, des);
|
||||
goto retry;
|
||||
}
|
||||
|
||||
mca_pml_dr_comm_proc_set_acked(comm_proc, ack->hdr_vid);
|
||||
|
||||
return;
|
||||
|
||||
/* queue request to retry later */
|
||||
@ -212,6 +218,10 @@ static void mca_pml_dr_recv_request_vfrag_ack(
|
||||
mca_pml_dr_ack_hdr_t* ack;
|
||||
int rc;
|
||||
|
||||
|
||||
mca_pml_dr_comm_proc_t* comm_proc = recvreq->req_recv.req_base.req_comm->c_pml_comm->procs +
|
||||
recvreq->req_recv.req_base.req_peer;
|
||||
|
||||
bml_endpoint = (mca_bml_base_endpoint_t*) proc->proc_pml;
|
||||
bml_btl = mca_bml_base_btl_array_get_next(&bml_endpoint->btl_eager);
|
||||
|
||||
@ -240,6 +250,7 @@ static void mca_pml_dr_recv_request_vfrag_ack(
|
||||
if(rc != OMPI_SUCCESS) {
|
||||
mca_bml_base_free(bml_btl, des);
|
||||
}
|
||||
mca_pml_dr_comm_proc_set_acked(comm_proc, ack->hdr_vid);
|
||||
}
|
||||
|
||||
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user