track wether the vfrag is being retransmitted
This commit was SVN r9817.
Этот коммит содержится в:
родитель
1b26caa95b
Коммит
d8ff8010f3
@ -302,8 +302,9 @@ static void mca_pml_dr_frag_completion(
|
||||
assert(sendreq->req_bytes_delivered <= sendreq->req_send.req_bytes_packed);
|
||||
|
||||
/* is this vfrag in the process of being retransmitted */
|
||||
if(vfrag->vf_idx != vfrag->vf_len) {
|
||||
if(vfrag->vf_state & MCA_PML_DR_VFRAG_RETRANS) {
|
||||
opal_list_remove_item(&sendreq->req_retrans, (opal_list_item_t*)vfrag);
|
||||
vfrag->vf_state &= ~MCA_PML_DR_VFRAG_RETRANS;
|
||||
}
|
||||
|
||||
/* record vfrag id to drop duplicate acks */
|
||||
@ -817,6 +818,7 @@ int mca_pml_dr_send_request_schedule(mca_pml_dr_send_request_t* sendreq)
|
||||
if(vfrag->vf_idx == vfrag->vf_len) {
|
||||
OPAL_THREAD_LOCK(&ompi_request_lock);
|
||||
opal_list_remove_item(&sendreq->req_retrans, (opal_list_item_t*)vfrag);
|
||||
vfrag->vf_state &= ~MCA_PML_DR_VFRAG_RETRANS;
|
||||
OPAL_THREAD_UNLOCK(&ompi_request_lock);
|
||||
}
|
||||
}
|
||||
|
@ -316,12 +316,12 @@ do {
|
||||
|
||||
#define MCA_PML_DR_SEND_REQUEST_VFRAG_RETRANS(sendreq, vfrag) \
|
||||
do { \
|
||||
if(vfrag->vf_idx == vfrag->vf_len || \
|
||||
(vfrag->vf_wdog_cnt == 0 && vfrag->vf_ack_cnt == 0)) { \
|
||||
opal_list_append(&(sendreq)->req_retrans, (opal_list_item_t*)vfrag); \
|
||||
if(((vfrag)->vf_state & MCA_PML_DR_VFRAG_RETRANS) == 0) { \
|
||||
opal_list_append(&(sendreq)->req_retrans, (opal_list_item_t*)(vfrag));\
|
||||
(vfrag)->vf_state |= MCA_PML_DR_VFRAG_RETRANS; \
|
||||
} \
|
||||
vfrag->vf_idx = 0; \
|
||||
vfrag->vf_state = 0; \
|
||||
(vfrag)->vf_state &= ~MCA_PML_DR_VFRAG_NACKED; \
|
||||
(vfrag)->vf_idx = 0; \
|
||||
} while(0)
|
||||
|
||||
/*
|
||||
@ -360,7 +360,7 @@ do { \
|
||||
do { \
|
||||
mca_btl_base_descriptor_t *des_old, *des_new; \
|
||||
OPAL_THREAD_ADD64(&vfrag->vf_pending,1); \
|
||||
OPAL_OUTPUT((0, "%s:%d:%s, retransmitting eager\n", __FILE__, __LINE__, __func__)); \
|
||||
OPAL_OUTPUT((0, "%s:%d:%s: retransmitting eager\n", __FILE__, __LINE__, __func__)); \
|
||||
assert(sendreq->req_descriptor->des_src != NULL); \
|
||||
\
|
||||
OPAL_THREAD_ADD32(&sendreq->req_pipeline_depth,1); \
|
||||
@ -391,7 +391,7 @@ do { \
|
||||
mca_btl_base_descriptor_t *des_old, *des_new; \
|
||||
mca_pml_dr_hdr_t *hdr; \
|
||||
\
|
||||
opal_output(0, "%s:%d:%s, (re)transmitting rndv probe\n", __FILE__, __LINE__, __func__); \
|
||||
opal_output(0, "%s:%d:%s: (re)transmitting rndv probe\n", __FILE__, __LINE__, __func__); \
|
||||
OPAL_THREAD_ADD32(&sendreq->req_pipeline_depth,1); \
|
||||
OPAL_THREAD_ADD64(&vfrag->vf_pending,1); \
|
||||
(vfrag)->vf_state &= ~MCA_PML_DR_VFRAG_NACKED; \
|
||||
|
@ -31,6 +31,7 @@ extern "C" {
|
||||
|
||||
#define MCA_PML_DR_VFRAG_NACKED 0x01
|
||||
#define MCA_PML_DR_VFRAG_RNDV 0x02
|
||||
#define MCA_PML_DR_VFRAG_RETRANS 0x04
|
||||
|
||||
struct mca_pml_dr_vfrag_t {
|
||||
opal_list_item_t super;
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user