# HG changeset patch # User boris.chiu@oracle.com # Date 1443631721 25200 # Node ID 8eb64ba1b2ad0af772892aec4ee40c46a111d018 # Parent 38c3e88acfc09a01789a67dcd98a3d8e60c1e42f 21863652 qperf cannot handle device name with IB port number as argument diff -r 38c3e88acfc0 -r 8eb64ba1b2ad components/open-fabrics/qperf/patches/base.patch --- a/components/open-fabrics/qperf/patches/base.patch Wed Sep 30 09:48:41 2015 -0700 +++ b/components/open-fabrics/qperf/patches/base.patch Wed Sep 30 09:48:41 2015 -0700 @@ -1,3 +1,6 @@ +# This patch was developed both in-house and from outside. We plan to submit it +# upstream, but do not yet have a target date for doing so +# diff -r -u /tmp/730054/qperf-0.4.6/src/socket.c qperf-0.4.6/src/socket.c --- /tmp/730054/qperf-0.4.6/src/socket.c Mon Aug 31 00:00:40 2009 +++ qperf-0.4.6/src/socket.c Mon Nov 8 11:10:20 2010 @@ -563,6 +566,36 @@ cm_expect_event(dev, RDMA_CM_EVENT_CONNECT_REQUEST); rd_create_qp(dev, cm->event->id->verbs, cm->event->id); +@@ -2012,7 +2071,7 @@ + char *p = index(Req.id, ':'); + + if (p) { +- *p++ = '\0'; ++ p++; + port = atoi(p); + if (port < 1) + error(0, "bad IB port: %d; must be at least 1", port); +@@ -2050,10 +2109,18 @@ + device = *dev->ib.devlist; + else { + struct ibv_device **d = dev->ib.devlist; +- while ((device = *d++)) +- if (streq(ibv_get_device_name(device), name)) ++ size_t n = strlen(name); ++ char *p = index(Req.id, ':'); ++ if (p) { ++ n = p - Req.id; ++ } ++ while ((device = *d++)) { ++ if (streqn(ibv_get_device_name(device), name, n)) { + break; ++ } ++ } + } ++ + if (!device) + error(SYS, "failed to find InfiniBand device"); + dev->ib.context = ibv_open_device(device); diff -r -u /tmp/730054/qperf-0.4.6/src/rds.c qperf-0.4.6/src/rds.c --- /tmp/730054/qperf-0.4.6/src/rds.c Mon Aug 31 00:00:40 2009 +++ qperf-0.4.6/src/rds.c Mon Nov 8 11:10:19 2010 @@ -649,7 +682,15 @@ diff -r -u /tmp/730054/qperf-0.4.6/src/qperf.h qperf-0.4.6/src/qperf.h --- /tmp/730054/qperf-0.4.6/src/qperf.h Mon Aug 31 00:00:40 2009 +++ qperf-0.4.6/src/qperf.h Tue Oct 18 16:40:59 2011 -@@ -193,6 +193,7 @@ +@@ -49,6 +49,7 @@ + #define cardof(a) (sizeof(a)/sizeof(*a)) + #define endof(a) (&a[cardof(a)]) + #define streq(a, b) (strcmp(a, b) == 0) ++#define streqn(a, b, n) (strncmp(a, b, n) == 0) + #define offset(t, e) ((long)&((t *)0)->e) + #define is_client() (ServerName != 0) + #define is_sender() (Req.flip ? !is_client() : is_client()) +@@ -193,6 +194,7 @@ uint32_t no_cpus; /* Number of processors */ uint32_t no_ticks; /* Ticks per second */ uint32_t max_cqes; /* Maximum CQ entries */