[Pvfs2-cvs] commit by pw in pvfs2/src/io/bmi/bmi_ib: ib.c

CVS commit program cvs at parl.clemson.edu
Fri Feb 15 10:10:14 EST 2008


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

Modified Files:
	ib.c 
Log Message:
bmi_ib: cancel memcache deregister states

In BMI_ib_cancel, fix up the list of states during which memory should
be deregistered.  This may avoid some assert() errors during BMI message
cancellation.


Index: ib.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/io/bmi/bmi_ib/ib.c,v
diff -u -p -p -u -r1.64 -r1.65
--- ib.c	10 Feb 2008 16:56:29 -0000	1.64
+++ ib.c	15 Feb 2008 15:10:14 -0000	1.65
@@ -1488,7 +1488,10 @@ BMI_ib_cancel(bmi_op_id_t id, bmi_contex
 		memcache_deregister(ib_device->memcache, &sq->buflist);
 #  if MEMCACHE_EARLY_REG
 	    /* pin when sending rts, so also must dereg in this state */
-	    if (sq->state.send == SQ_WAITING_CTS)
+	    if (sq->state.send == SQ_WAITING_RTS_SEND_COMPLETION ||
+	        sq->state.send == SQ_WAITING_RTS_SEND_COMPLETION_GOT_CTS ||
+	        sq->state.send == SQ_WAITING_CTS ||
+		sq->state.send == SQ_WAITING_DATA_SEND_COMPLETION)
 		memcache_deregister(ib_device->memcache, &sq->buflist);
 #  endif
 #endif
@@ -1503,7 +1506,8 @@ BMI_ib_cancel(bmi_op_id_t id, bmi_contex
 		memcache_deregister(ib_device->memcache, &rq->buflist);
 #  if MEMCACHE_EARLY_REG
 	    /* pin on post, dereg all these */
-	    if (rq->state.recv == RQ_RTS_WAITING_CTS_BUFFER)
+	    if (rq->state.recv == RQ_RTS_WAITING_CTS_SEND_COMPLETION ||
+	        rq->state.recv == RQ_RTS_WAITING_RTS_DONE)
 		memcache_deregister(ib_device->memcache, &rq->buflist);
 	    if (rq->state.recv == RQ_WAITING_INCOMING
 	      && rq->buflist.tot_len > ib_device->eager_buf_payload)



More information about the Pvfs2-cvs mailing list