svn commit: r273811 - head/contrib/ofed/librdmacm/examples

Navdeep Parhar np at FreeBSD.org
Wed Oct 29 06:38:08 UTC 2014


On Tue, Oct 28, 2014 at 11:34:11PM -0700, Anthony Cornehl wrote:
> On October 28, 2014 11:24:13 PM PDT, Navdeep Parhar <np at FreeBSD.org> wrote:
> >Author: np
> >Date: Wed Oct 29 06:24:12 2014
> >New Revision: 273811
> >URL: https://svnweb.freebsd.org/changeset/base/273811
> >
> >Log:
> > rping: make sure that the CQ event thread can never poll a CQ after it
> >  has been destroyed.
> >  
> >  Submitted by:	Hariprasad at Chelsio dot com
> >  Sponsored by:	Chelsio Communications
> >
> 
> Is this change present upstream? We really should be tracking the originating
> repositories when making changes in OFED packages, but the kernel and
> userspace is several years out of date from what OFED is tracking currently.

The patch was submitted upstream.  I'm sure it'll get there eventually.

Navdeep

> 
> [1] http://git.openfabrics.org/?p=~shefty/librdmacm.git;a=summary
> 
> >Modified:
> >  head/contrib/ofed/librdmacm/examples/rping.c
> >
> >Modified: head/contrib/ofed/librdmacm/examples/rping.c
> >==============================================================================
> >--- head/contrib/ofed/librdmacm/examples/rping.c	Wed Oct 29 04:32:46
> >2014	(r273810)
> >+++ head/contrib/ofed/librdmacm/examples/rping.c	Wed Oct 29 06:24:12
> >2014	(r273811)
> >@@ -40,7 +40,6 @@
> > #include <netinet/in.h>
> > #include <sys/socket.h>
> > #include <netdb.h>
> >-#include <byteswap.h>
> > #include <semaphore.h>
> > #include <arpa/inet.h>
> > #include <pthread.h>
> >@@ -280,10 +279,10 @@ static int rping_cq_event_handler(struct
> > 		ret = 0;
> > 
> > 		if (wc.status) {
> >-			fprintf(stderr, "cq completion failed status %d\n",
> >-				wc.status);
> > 			if (wc.status != IBV_WC_WR_FLUSH_ERR)
> >-				ret = -1;
> >+				fprintf(stderr, "cq completion failed status %d\n",
> >+					wc.status);
> >+			ret = -1;
> > 			goto error;
> > 		}
> > 
> >@@ -800,10 +799,9 @@ static void *rping_persistent_server_thr
> > 
> > 	rping_test_server(cb);
> > 	rdma_disconnect(cb->child_cm_id);
> >+	pthread_join(cb->cqthread, NULL);
> > 	rping_free_buffers(cb);
> > 	rping_free_qp(cb);
> >-	pthread_cancel(cb->cqthread);
> >-	pthread_join(cb->cqthread, NULL);
> > 	rdma_destroy_id(cb->child_cm_id);
> > 	free_cb(cb);
> > 	return NULL;
> >@@ -888,6 +886,7 @@ static int rping_run_server(struct rping
> > 
> > 	rping_test_server(cb);
> > 	rdma_disconnect(cb->child_cm_id);
> >+	pthread_join(cb->cqthread, NULL);
> > 	rdma_destroy_id(cb->child_cm_id);
> > err2:
> > 	rping_free_buffers(cb);
> >@@ -1053,9 +1052,16 @@ static int rping_run_client(struct rping
> > 		goto err2;
> > 	}
> > 
> >-	rping_test_client(cb);
> >+	ret = rping_test_client(cb);
> >+	if (ret) {
> >+		fprintf(stderr, "rping client failed: %d\n", ret);
> >+		goto err3;
> >+	}
> >+	ret = 0;
> >+err3:
> > 	rdma_disconnect(cb->cm_id);
> > err2:
> >+	pthread_join(cb->cqthread, NULL);
> > 	rping_free_buffers(cb);
> > err1:
> > 	rping_free_qp(cb);
> >_______________________________________________
> >svn-src-head at freebsd.org mailing list
> >http://lists.freebsd.org/mailman/listinfo/svn-src-head
> >To unsubscribe, send any mail to "svn-src-head-unsubscribe at freebsd.org"
> 
> 
> 


More information about the svn-src-all mailing list