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

Anthony Cornehl accornehl at fastmail.fm
Wed Oct 29 06:47:47 UTC 2014


On October 28, 2014 11:38:01 PM PDT, Navdeep Parhar <np at FreeBSD.org> wrote:
>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
>

Awesome! Thanks for fixing this.

>> 
>> [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