Simple patch for a data path bug when there is a size mismatch
between the AIO read and write buffers of two connection peers.

  Without the patch the send path will process the remains of an
active sdpc_iocb which has a RDMA write already in progress. When
the RDMA write completes the sdpc_iocb will not be available for
post processing. With the patch the send data path stalls until
either the write RDMA completes or a new sink advertisement arives.

-Libor


Index: sdp_send.c
===================================================================
--- sdp_send.c  (revision 2071)
+++ sdp_send.c  (working copy)
@@ -878,7 +878,8 @@
         * hope that a new sink advertisment will arrive, because 
         * sinks are more efficient.
         */
-       if (sdp_desc_q_size(&conn->w_snk) > 0)
+       if (sdp_desc_q_size(&conn->w_snk) ||
+           iocb->flags & SDP_IOCB_F_RDMA_W)
                goto done;
 
        if (conn->src_zthresh > iocb->len ||

_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to