1
1

track wether the vfrag is being retransmitted

This commit was SVN r9817.
Этот коммит содержится в:
Tim Woodall 2006-05-04 17:30:58 +00:00
родитель 1b26caa95b
Коммит d8ff8010f3
3 изменённых файлов: 11 добавлений и 8 удалений

Просмотреть файл

@ -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;