1
1

Fix out of resource handling for FIN packets broken by r14768.

This commit was SVN r14780.

The following SVN revision numbers were found above:
  r14768 --> open-mpi/ompi@3401bd2b07
Этот коммит содержится в:
Gleb Natapov 2007-05-27 08:29:38 +00:00
родитель 80fa8eef6e
Коммит ad69d3c6ac
2 изменённых файлов: 15 добавлений и 6 удалений

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

@ -249,7 +249,7 @@ static void mca_pml_ob1_fin_completion(
MCA_PML_OB1_PROGRESS_PENDING(bml_btl);
}
int mca_pml_ob1_send_fin(
int mca_pml_ob1_send_fin_btl(
ompi_proc_t* proc,
mca_bml_base_btl_t* bml_btl,
void *hdr_des,
@ -260,9 +260,8 @@ int mca_pml_ob1_send_fin(
mca_pml_ob1_fin_hdr_t* hdr;
int rc;
MCA_PML_OB1_DES_ALLOC(bml_btl, fin, order, sizeof(mca_pml_ob1_fin_hdr_t));
MCA_PML_OB1_DES_ALLOC(bml_btl, fin, order, sizeof(mca_pml_ob1_fin_hdr_t));
if(NULL == fin) {
MCA_PML_OB1_ADD_FIN_TO_PENDING(proc, hdr_des, bml_btl, order);
return OMPI_ERR_OUT_OF_RESOURCE;
}
fin->des_flags |= MCA_BTL_DES_FLAGS_PRIORITY;
@ -349,7 +348,7 @@ void mca_pml_ob1_process_pending_packets(mca_bml_base_btl_t* bml_btl)
}
break;
case MCA_PML_OB1_HDR_TYPE_FIN:
rc = mca_pml_ob1_send_fin(pckt->proc, send_dst,
rc = mca_pml_ob1_send_fin_btl(pckt->proc, send_dst,
pckt->hdr.hdr_fin.hdr_des.pval,
pckt->order);
MCA_PML_OB1_PCKT_PENDING_RETURN(pckt);

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

@ -283,9 +283,19 @@ do { \
} while(0)
int mca_pml_ob1_send_fin(ompi_proc_t* proc, mca_bml_base_btl_t* bml_btl,
void *hdr_des, uint8_t order);
int mca_pml_ob1_send_fin_btl(ompi_proc_t* proc, mca_bml_base_btl_t* bml_btl,
void *hdr_des, uint8_t order);
static inline int mca_pml_ob1_send_fin(ompi_proc_t* proc, void *hdr_des,
mca_bml_base_btl_t* bml_btl, uint8_t order)
{
if(mca_pml_ob1_send_fin_btl(proc, bml_btl, hdr_des, order) == OMPI_SUCCESS)
return OMPI_SUCCESS;
MCA_PML_OB1_ADD_FIN_TO_PENDING(proc, hdr_des, bml_btl, order);
return OMPI_ERR_OUT_OF_RESOURCE;
}
/* This function tries to resend FIN/ACK packets from pckt_pending queue.
* Packets are added to the queue when sending of FIN or ACK is failed due to