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

Reply via email to