[Pvfs2-cvs] commit by atchley in pvfs2/src/io/bmi/bmi_mx: mx.c

CVS commit program cvs at parl.clemson.edu
Thu May 29 12:35:28 EDT 2008


Update of /projects/cvsroot/pvfs2/src/io/bmi/bmi_mx
In directory parlweb1:/tmp/cvs-serv16438/src/io/bmi/bmi_mx

Modified Files:
	mx.c 
Log Message:
Set MX_ZOMBIE_SEND=0 so that sends are acked before completing them.
Disconnect if a message fails for any reason.
Change debug level for messages that are cancelled a second time.


Index: mx.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/io/bmi/bmi_mx/mx.c,v
diff -p -u -r1.27 -r1.28
--- mx.c	22 May 2008 20:38:56 -0000	1.27
+++ mx.c	29 May 2008 16:35:28 -0000	1.28
@@ -966,6 +966,9 @@ BMI_mx_initialize(bmi_method_addr_p list
         /* return errors, do not abort */
         mx_set_error_handler(MX_ERRORS_RETURN);
 
+        /* only complete sends after they are delivered */
+        setenv("MX_ZOMBIE", "0", 1);
+
         mxret = mx_init();
         if (!(mxret == MX_SUCCESS || mxret == MX_ALREADY_INITIALIZED)) {
                 debug(BMX_DB_WARN, "mx_init() failed with %s", mx_strerror(mxret));
@@ -2778,6 +2781,9 @@ BMI_mx_testcontext(int incount, bmi_op_i
                                 sizes[completed] = status.xfer_length;
                         } else {
                                 errs[completed] = bmx_mx_to_bmi_errno(status.code);
+                                debug(BMX_DB_CTX, "%s unexpected send completed with "
+                                      "error %s", __func__, mx_strstatus(status.code));
+                                bmx_peer_disconnect(peer, 0, BMI_ENETRESET);
                         }
                         if (user_ptrs)
                                 user_ptrs[completed] = ctx->mxc_mop->user_ptr;
@@ -3116,7 +3122,7 @@ BMI_mx_cancel(bmi_op_id_t id, bmi_contex
                 }
                 break;
         default:
-                debug(BMX_DB_WARN, "%s called on %s with state %d", __func__,
+                debug(BMX_DB_CTX, "%s called on %s with state %d", __func__,
                         ctx->mxc_type == BMX_REQ_TX ? "TX" : "RX", ctx->mxc_state);
         }
         BMX_EXIT;



More information about the Pvfs2-cvs mailing list