Can we get rid of mca_pml_ob1_send_fin_btl and just have
mca_pml_ob1_send_fin? It seems we should just always send the fin
over the same btl and this would clean up the code a bit.
Thanks,
Galen
On May 27, 2007, at 2:29 AM, g...@osl.iu.edu wrote:
Author: gleb
Date: 2007-05-27 04:29:38 EDT (Sun, 27 May 2007)
New Revision: 14780
URL: https://svn.open-mpi.org/trac/ompi/changeset/14780
Log:
Fix out of resource handling for FIN packets broken by r14768.
Text files modified:
trunk/ompi/mca/pml/ob1/pml_ob1.c | 7 +++----
trunk/ompi/mca/pml/ob1/pml_ob1.h | 14 ++++++++++++--
2 files changed, 15 insertions(+), 6 deletions(-)
Modified: trunk/ompi/mca/pml/ob1/pml_ob1.c
======================================================================
========
--- trunk/ompi/mca/pml/ob1/pml_ob1.c (original)
+++ trunk/ompi/mca/pml/ob1/pml_ob1.c 2007-05-27 04:29:38 EDT (Sun,
27 May 2007)
@@ -249,7 +249,7 @@
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 @@
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 @@
}
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);
Modified: trunk/ompi/mca/pml/ob1/pml_ob1.h
======================================================================
========
--- trunk/ompi/mca/pml/ob1/pml_ob1.h (original)
+++ trunk/ompi/mca/pml/ob1/pml_ob1.h 2007-05-27 04:29:38 EDT (Sun,
27 May 2007)
@@ -283,9 +283,19 @@
} 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
_______________________________________________
svn mailing list
s...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/svn