components/open-fabrics/librdmacm/patches/base.patch
author Boris Chiu <boris.chiu@oracle.com>
Fri, 08 Aug 2014 15:39:12 -0700
branchs11u2-sru
changeset 3253 c8cb45adf0d4
parent 3228 c1d23ce512f7
permissions -rw-r--r--
19229172 rdma_set_option.3 should be published 19237065 librdmacm: man pages for unsupported APIS installed
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
     1
diff -r -u /tmp/librdmacm-1.0.14.1/configure librdmacm-1.0.14.1/configure
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
     2
--- /tmp/librdmacm-1.0.14.1/configure	Tue Feb 15 17:12:14 2011
3203
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
     3
+++ librdmacm-1.0.14.1/configure	Wed Apr 30 10:52:05 2014
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
     4
@@ -7625,6 +7625,7 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
     5
  	esac ;;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
     6
       esac
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
     7
       link_all_deplibs=yes
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
     8
+      hardcode_libdir_flag_spec=
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
     9
       ;;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    10
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    11
     sunos4*)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    12
diff -r -u /tmp/librdmacm-1.0.14.1/Makefile.in librdmacm-1.0.14.1/Makefile.in
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    13
--- /tmp/librdmacm-1.0.14.1/Makefile.in	Tue Feb 15 17:12:13 2011
3203
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    14
+++ librdmacm-1.0.14.1/Makefile.in	Wed Apr 30 10:52:05 2014
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    15
@@ -69,7 +69,7 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    16
 	"$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" \
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    17
 	"$(DESTDIR)$(man7dir)" "$(DESTDIR)$(infinibandincludedir)" \
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    18
 	"$(DESTDIR)$(librdmacmincludedir)"
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    19
-libLTLIBRARIES_INSTALL = $(INSTALL)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    20
+libLTLIBRARIES_INSTALL = $(INSTALL) -m 755
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    21
 LTLIBRARIES = $(lib_LTLIBRARIES)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    22
 src_librdmacm_la_LIBADD =
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    23
 am_src_librdmacm_la_OBJECTS = src_librdmacm_la-cma.lo \
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    24
@@ -76,7 +76,7 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    25
 	src_librdmacm_la-addrinfo.lo src_librdmacm_la-acm.lo
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    26
 src_librdmacm_la_OBJECTS = $(am_src_librdmacm_la_OBJECTS)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    27
 am__dirstamp = $(am__leading_dot)dirstamp
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    28
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    29
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) -m 755
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    30
 PROGRAMS = $(bin_PROGRAMS)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    31
 am_examples_mckey_OBJECTS = mckey.$(OBJEXT)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    32
 examples_mckey_OBJECTS = $(am_examples_mckey_OBJECTS)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    33
diff -r -u /tmp/librdmacm-1.0.14.1/src/cma.h librdmacm-1.0.14.1/src/cma.h
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    34
--- /tmp/librdmacm-1.0.14.1/src/cma.h	Mon Oct  4 17:00:18 2010
3203
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    35
+++ librdmacm-1.0.14.1/src/cma.h	Tue May  6 11:32:19 2014
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    36
@@ -40,8 +40,10 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    37
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    38
 #include <stdlib.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    39
 #include <errno.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    40
+#if !(defined(__SVR4) && defined(__sun))
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    41
 #include <endian.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    42
 #include <byteswap.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    43
+#endif
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    44
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    45
 #include <rdma/rdma_cma.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    46
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    47
@@ -58,14 +60,6 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    48
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    49
 #define PFX "librdmacm: "
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    50
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    51
-#if __BYTE_ORDER == __LITTLE_ENDIAN
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    52
-static inline uint64_t htonll(uint64_t x) { return bswap_64(x); }
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    53
-static inline uint64_t ntohll(uint64_t x) { return bswap_64(x); }
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    54
-#else
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    55
-static inline uint64_t htonll(uint64_t x) { return x; }
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    56
-static inline uint64_t ntohll(uint64_t x) { return x; }
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    57
-#endif
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    58
-
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    59
 #define min(a, b) (a < b ? a : b)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    60
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    61
 static inline int ERR(int err)
3203
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    62
@@ -74,7 +68,7 @@
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    63
 	return -1;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    64
 }
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    65
 
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    66
-int ucma_init();
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    67
+int ucma_init(void);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    68
 extern int af_ib_support;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    69
 
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    70
 #define RAI_ROUTEONLY		0x01000000
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    71
diff -r -u /tmp/librdmacm-1.0.14.1/src/cma.c librdmacm-1.0.14.1/src/cma.c
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    72
--- /tmp/librdmacm-1.0.14.1/src/cma.c	Fri Dec 10 12:05:34 2010
3203
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    73
+++ librdmacm-1.0.14.1/src/cma.c	Tue May  6 11:30:54 2014
2532
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
    74
@@ -46,12 +46,18 @@
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    75
 #include <poll.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    76
 #include <unistd.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    77
 #include <pthread.h>
2532
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
    78
+#if defined(__SVR4) && defined(__sun)
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
    79
+#include <sys/stat.h>
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
    80
+#include <sys/mkdev.h>
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
    81
+#else
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    82
 #include <endian.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    83
 #include <byteswap.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    84
+#endif
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    85
 #include <stddef.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    86
 #include <netdb.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    87
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    88
 #include "cma.h"
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    89
+#include <infiniband/arch.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    90
 #include <infiniband/driver.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    91
 #include <infiniband/marshall.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
    92
 #include <rdma/rdma_cma.h>
3203
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    93
@@ -100,6 +106,8 @@
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    94
 	struct ibv_pd	   *pd;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    95
 	uint64_t	    guid;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    96
 	int		    port_cnt;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    97
+	int		    refcnt;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    98
+	int		    max_qpsize;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
    99
 	uint8_t		    max_initiator_depth;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   100
 	uint8_t		    max_responder_resources;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   101
 };
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   102
@@ -143,6 +151,7 @@
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   103
 
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   104
 static struct cma_device *cma_dev_array;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   105
 static int cma_dev_cnt;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   106
+static int cma_init_cnt;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   107
 static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   108
 static int abi_ver = RDMA_USER_CM_MAX_ABI_VERSION;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   109
 int af_ib_support;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   110
@@ -156,12 +165,16 @@
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   111
 
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   112
 	if (cma_dev_cnt) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   113
 		while (cma_dev_cnt--) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   114
-			ibv_dealloc_pd(cma_dev_array[cma_dev_cnt].pd);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   115
+			if (!cma_dev_array[cma_dev_cnt].verbs)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   116
+				continue;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   117
+
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   118
+			if (cma_dev_array[cma_dev_cnt].refcnt)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   119
+				ibv_dealloc_pd(cma_dev_array[cma_dev_cnt].pd);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   120
 			ibv_close_device(cma_dev_array[cma_dev_cnt].verbs);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   121
+			cma_init_cnt--;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   122
 		}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   123
 
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   124
 		free(cma_dev_array);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   125
-		cma_dev_cnt = 0;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   126
 	}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   127
 }
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   128
 
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   129
@@ -228,9 +241,7 @@
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   130
 int ucma_init(void)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   131
 {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   132
 	struct ibv_device **dev_list = NULL;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   133
-	struct cma_device *cma_dev;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   134
-	struct ibv_device_attr attr;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   135
-	int i, ret, dev_cnt, ib;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   136
+	int i, ret, dev_cnt;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   137
 
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   138
 	/* Quick check without lock to see if we're already initialized */
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   139
 	if (cma_dev_cnt)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   140
@@ -253,46 +264,20 @@
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   141
 		goto err1;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   142
 	}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   143
 
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   144
-	cma_dev_array = malloc(sizeof *cma_dev * dev_cnt);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   145
+	if (!dev_cnt) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   146
+		printf("CMA: no RDMA devices found\n");
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   147
+		ret = ERR(ENODEV);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   148
+		goto err2;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   149
+	}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   150
+	cma_dev_array = calloc(dev_cnt, sizeof *cma_dev_array);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   151
 	if (!cma_dev_array) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   152
 		ret = ERR(ENOMEM);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   153
 		goto err2;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   154
 	}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   155
 
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   156
-	for (i = 0, ib = 0; dev_list[i];) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   157
-		cma_dev = &cma_dev_array[i];
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   158
+	for (i = 0; dev_list[i]; i++)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   159
+		cma_dev_array[i].guid = ibv_get_device_guid(dev_list[i]);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   160
 
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   161
-		cma_dev->guid = ibv_get_device_guid(dev_list[i]);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   162
-		cma_dev->verbs = ibv_open_device(dev_list[i]);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   163
-		if (!cma_dev->verbs) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   164
-			printf("CMA: unable to open RDMA device\n");
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   165
-			ret = ERR(ENODEV);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   166
-			goto err3;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   167
-		}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   168
-
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   169
-		cma_dev->pd = ibv_alloc_pd(cma_dev->verbs);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   170
-		if (!cma_dev->pd) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   171
-			ibv_close_device(cma_dev->verbs);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   172
-			ret = ERR(ENOMEM);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   173
-			goto err3;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   174
-		}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   175
-
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   176
-		i++;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   177
-		ret = ibv_query_device(cma_dev->verbs, &attr);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   178
-		if (ret) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   179
-			printf("CMA: unable to query RDMA device\n");
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   180
-			ret = ERR(ret);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   181
-			goto err3;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   182
-		}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   183
-
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   184
-		cma_dev->port_cnt = attr.phys_port_cnt;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   185
-		cma_dev->max_initiator_depth = (uint8_t) attr.max_qp_init_rd_atom;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   186
-		cma_dev->max_responder_resources = (uint8_t) attr.max_qp_rd_atom;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   187
-		ib += (cma_dev->verbs->device->transport_type == IBV_TRANSPORT_IB);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   188
-	}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   189
-
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   190
-	if (ib)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   191
-		ucma_ib_init();
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   192
 	cma_dev_cnt = dev_cnt;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   193
 	ucma_set_af_ib_support();
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   194
 	pthread_mutex_unlock(&mut);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   195
@@ -299,12 +284,6 @@
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   196
 	ibv_free_device_list(dev_list);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   197
 	return 0;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   198
 
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   199
-err3:
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   200
-	while (i--) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   201
-		ibv_dealloc_pd(cma_dev_array[i].pd);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   202
-		ibv_close_device(cma_dev_array[i].verbs);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   203
-	}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   204
-	free(cma_dev_array);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   205
 err2:
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   206
 	ibv_free_device_list(dev_list);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   207
 err1:
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   208
@@ -312,12 +291,93 @@
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   209
 	return ret;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   210
 }
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   211
 
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   212
+static struct ibv_context *ucma_open_device(uint64_t guid)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   213
+{
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   214
+	struct ibv_device **dev_list;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   215
+	struct ibv_context *verbs = NULL;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   216
+	int i;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   217
+
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   218
+	dev_list = ibv_get_device_list(NULL);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   219
+	if (!dev_list) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   220
+		fprintf(stderr, PFX "Fatal: unable to get RDMA device list\n");
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   221
+		return NULL;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   222
+	}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   223
+
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   224
+	for (i = 0; dev_list[i]; i++) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   225
+		if (ibv_get_device_guid(dev_list[i]) == guid) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   226
+			verbs = ibv_open_device(dev_list[i]);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   227
+			break;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   228
+		}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   229
+	}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   230
+
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   231
+	if (!verbs)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   232
+		fprintf(stderr, PFX "Fatal: unable to open RDMA device\n");
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   233
+
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   234
+	ibv_free_device_list(dev_list);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   235
+	return verbs;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   236
+}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   237
+
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   238
+static int ucma_init_device(struct cma_device *cma_dev)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   239
+{
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   240
+	struct ibv_device_attr attr;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   241
+	int ret;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   242
+
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   243
+	if (cma_dev->verbs)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   244
+		return 0;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   245
+
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   246
+	cma_dev->verbs = ucma_open_device(cma_dev->guid);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   247
+	if (!cma_dev->verbs)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   248
+		return ERR(ENODEV);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   249
+
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   250
+	ret = ibv_query_device(cma_dev->verbs, &attr);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   251
+	if (ret) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   252
+		fprintf(stderr, PFX "Fatal: unable to query RDMA device\n");
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   253
+		ret = ERR(ret);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   254
+		goto err;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   255
+	}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   256
+
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   257
+	cma_dev->port_cnt = attr.phys_port_cnt;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   258
+	cma_dev->max_qpsize = attr.max_qp_wr;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   259
+	cma_dev->max_initiator_depth = (uint8_t) attr.max_qp_init_rd_atom;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   260
+	cma_dev->max_responder_resources = (uint8_t) attr.max_qp_rd_atom;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   261
+	cma_init_cnt++;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   262
+	return 0;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   263
+
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   264
+err:
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   265
+	ibv_close_device(cma_dev->verbs);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   266
+	cma_dev->verbs = NULL;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   267
+	return ret;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   268
+}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   269
+
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   270
+static int ucma_init_all(void)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   271
+{
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   272
+	int i, ret = 0;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   273
+
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   274
+	if (!cma_dev_cnt) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   275
+		ret = ucma_init();
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   276
+		if (ret)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   277
+			return ret;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   278
+	}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   279
+
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   280
+	if (cma_init_cnt == cma_dev_cnt)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   281
+		return 0;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   282
+
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   283
+	pthread_mutex_lock(&mut);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   284
+	for (i = 0; i < cma_dev_cnt; i++) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   285
+		ret = ucma_init_device(&cma_dev_array[i]);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   286
+		if (ret)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   287
+			break;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   288
+	}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   289
+	pthread_mutex_unlock(&mut);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   290
+	return ret;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   291
+}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   292
+
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   293
 struct ibv_context **rdma_get_devices(int *num_devices)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   294
 {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   295
 	struct ibv_context **devs = NULL;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   296
 	int i;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   297
 
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   298
-	if (ucma_init())
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   299
+	if (ucma_init_all())
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   300
 		goto out;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   301
 
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   302
 	devs = malloc(sizeof *devs * (cma_dev_cnt + 1));
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   303
@@ -354,9 +414,18 @@
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   304
 	if (!channel)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   305
 		return NULL;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   306
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   307
+#if defined(__SVR4) && defined(__sun)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   308
+	channel->fd = open("/dev/infiniband/ofs/rdma_cm", O_RDWR);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   309
+#else
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   310
 	channel->fd = open("/dev/infiniband/rdma_cm", O_RDWR);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   311
+#endif
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   312
+
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   313
 	if (channel->fd < 0) {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   314
+#if defined(__SVR4) && defined(__sun)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   315
+		printf("CMA: unable to open /dev/infiniband/ofs/rdma_cm\n");
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   316
+#else
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   317
 		printf("CMA: unable to open /dev/infiniband/rdma_cm\n");
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   318
+#endif
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   319
 		goto err;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   320
 	}
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   321
 	return channel;
3203
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   322
@@ -374,18 +443,33 @@
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   323
 static int ucma_get_device(struct cma_id_private *id_priv, uint64_t guid)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   324
 {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   325
 	struct cma_device *cma_dev;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   326
-	int i;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   327
+	int i, ret;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   328
 
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   329
 	for (i = 0; i < cma_dev_cnt; i++) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   330
 		cma_dev = &cma_dev_array[i];
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   331
-		if (cma_dev->guid == guid) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   332
-			id_priv->cma_dev = cma_dev;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   333
-			id_priv->id.verbs = cma_dev->verbs;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   334
-			return 0;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   335
-		}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   336
+		if (cma_dev->guid == guid)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   337
+			goto match;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   338
 	}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   339
-
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   340
+ 
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   341
 	return ERR(ENODEV);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   342
+match:
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   343
+	pthread_mutex_lock(&mut);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   344
+	if ((ret = ucma_init_device(cma_dev)))
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   345
+		goto out;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   346
+ 
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   347
+	if (!cma_dev->refcnt++) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   348
+		cma_dev->pd = ibv_alloc_pd(cma_dev->verbs);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   349
+		if (!cma_dev->pd) {
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   350
+			cma_dev->refcnt--;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   351
+			ret = ERR(ENOMEM);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   352
+			goto out;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   353
+		}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   354
+	}
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   355
+	id_priv->cma_dev = cma_dev;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   356
+	id_priv->id.verbs = cma_dev->verbs;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   357
+out:
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   358
+	pthread_mutex_unlock(&mut);
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   359
+	return ret;
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   360
 }
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   361
 
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   362
 static void ucma_free_id(struct cma_id_private *id_priv)
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   363
@@ -1186,6 +1270,10 @@
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   364
 	if (ret)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   365
 		return ret;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   366
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   367
+#if defined(__SVR4) && defined(__sun)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   368
+	qp_init_attr->sq_sig_all |= LIB_RDMACM_QP_BIT;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   369
+#endif
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   370
+
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   371
 	qp = ibv_create_qp(pd, qp_init_attr);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   372
 	if (!qp) {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   373
 		ret = ERR(ENOMEM);
3203
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   374
@@ -1787,6 +1875,9 @@
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   375
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   376
 	CMA_CREATE_MSG_CMD(msg, cmd, UCMA_CMD_ACCEPT, size);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   377
 	cmd->id = id_priv->handle;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   378
+#if defined(__SVR4) && defined(__sun)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   379
+	cmd->conn_param.qp_num = ((id_priv->id).qp)->qp_num;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   380
+#endif
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   381
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   382
 	ret = write(id_priv->id.channel->fd, msg, size);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   383
 	if (ret != size) {
3203
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   384
@@ -2051,8 +2142,20 @@
2532
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   385
 
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   386
 	CMA_CREATE_MSG_CMD_RESP(msg, cmd, resp, UCMA_CMD_MIGRATE_ID, size);
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   387
 	cmd->id = id_priv->handle;
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   388
+
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   389
+#if !(defined(__SVR4) && defined(__sun))
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   390
 	cmd->fd = id->channel->fd;
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   391
+#else
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   392
+	{
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   393
+		struct stat	fstat_buf;
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   394
+		int		rc;
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   395
 
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   396
+		if ((rc = fstat(id->channel->fd, &fstat_buf)) != 0)
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   397
+			return (ERR(ENODATA));
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   398
+		cmd->fd = minor(fstat_buf.st_rdev);
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   399
+	}
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   400
+#endif
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   401
+
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   402
 	ret = write(channel->fd, msg, size);
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   403
 	if (ret != size)
5b3dc1c8b85e PSARC 2012/384 Fast IB node death detection
Boris Chiu <Boris.Chiu@Oracle.COM>
parents: 369
diff changeset
   404
 		return (ret >= 0) ? ERR(ENODATA) : -1;
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   405
diff -r -u /tmp/librdmacm-1.0.14.1/man/rdma_create_id.3 librdmacm-1.0.14.1/man/rdma_create_id.3
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   406
--- /tmp/librdmacm-1.0.14.1/man/rdma_create_id.3	Mon Oct  4 17:00:18 2010
3203
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   407
+++ librdmacm-1.0.14.1/man/rdma_create_id.3	Wed Apr 30 10:52:04 2014
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   408
@@ -31,9 +31,7 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   409
 explicitly binding to a specified RDMA device before communication
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   410
 can occur, and most operations are asynchronous in nature.  Asynchronous
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   411
 communication events on an rdma_cm_id are reported through the associated
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   412
-event channel.  If the channel parameter is NULL, the rdma_cm_id will
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   413
-be placed into synchronous operation.  While operating synchronously,
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   414
-calls that result in an event will block until the operation completes.
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   415
+event channel.
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   416
 The event will be returned to the user through the rdma_cm_id structure,
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   417
 and be available for access until another rdma_cm call is made.
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   418
 .P
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   419
diff -r -u /tmp/librdmacm-1.0.14.1/man/rdma_create_qp.3 librdmacm-1.0.14.1/man/rdma_create_qp.3
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   420
--- /tmp/librdmacm-1.0.14.1/man/rdma_create_qp.3	Fri Dec 10 12:05:34 2010
3203
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   421
+++ librdmacm-1.0.14.1/man/rdma_create_qp.3	Wed Apr 30 11:48:07 2014
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   422
@@ -33,8 +33,7 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   423
 the rdma_cm_id will be created using a default protection domain.  One
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   424
 default protection domain is allocated per RDMA device.
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   425
 .P
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   426
-The initial QP attributes are specified by the qp_init_attr parameter.  The
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   427
-send_cq and recv_cq fields in the ibv_qp_init_attr are optional.  If
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   428
+The initial QP attributes are specified by the qp_init_attr parameter.  If
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   429
 a send or receive completion queue is not specified, then a CQ will be
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   430
 allocated by the rdma_cm for the QP, along with corresponding completion
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   431
 channels.  Completion channels and CQ data created by the rdma_cm are
3228
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   432
diff -r -u /tmp/librdmacm-1.0.14.1/man/rdma_set_option.3 librdmacm-1.0.14.1/man/rdma_set_option.3
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   433
--- /tmp/librdmacm-1.0.14.1/man/rdma_set_option.3	Mon Oct  4 17:00:18 2010
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   434
+++ librdmacm-1.0.14.1/man/rdma_set_option.3	Wed Jul  2 13:40:10 2014
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   435
@@ -14,16 +14,26 @@
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   436
 .IP "id" 12
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   437
 RDMA identifier.
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   438
 .IP "level" 12
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   439
-Protocol level of the option to set.
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   440
+Protocol level of the option to set.  Currently level RDMA_OPTION_ID is supported.
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   441
 .IP "optname" 12
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   442
-Name of the option, relative to the level, to set.
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   443
+Name of the option, relative to the level, to set.  The only supported option isRDMA_OPTION_ID_REUSEADDR for level RDMA_OPTION_ID.
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   444
 .IP "optval" 12
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   445
-Reference to the option data.  The data is dependent on the level and optname.
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   446
+Reference to the option data.  The data is dependent on the level and optname.  For the option RDMA_OPTION_ID_REUSEADDR, an integer is passed.
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   447
 .IP "optlen" 12
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   448
 The size of the %optval buffer.
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   449
 .SH "DESCRIPTION"
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   450
 Sets communication options for an rdma_cm_id.  This call is used to override
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   451
 the default system settings.
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   452
+.sp
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   453
+The RDMA_OPTION_ID_REUSEADDR option can be used to enable or
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   454
+disable REUSEADDR option for a CMID. A value of 0 disables
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   455
+the option and a non-zero value enables the option. This
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   456
+option can be set before calling rdma_bind_addr(3) or the
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   457
+rdma_resolve_addr(3) API. Listening for connection requests,
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   458
+using rdma_listen(3), is not supported for CMIDs set with
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   459
+this option. This option enables multiple connections to share
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   460
+the same source IP Port on the active side of the connection.
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   461
+.sp
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   462
 .SH "RETURN VALUE"
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   463
 Returns 0 on success, or -1 on error.  If an error occurs, errno will be
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   464
 set to indicate the failure reason.
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   465
diff -r -u /tmp/librdmacm-1.0.14.1/man/rdma_cm.7 librdmacm-1.0.14.1/man/rdma_cm.7
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   466
--- /tmp/librdmacm-1.0.14.1/man/rdma_cm.7	Mon Oct  4 17:00:18 2010
3203
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   467
+++ librdmacm-1.0.14.1/man/rdma_cm.7	Wed Apr 30 11:48:07 2014
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   468
@@ -19,7 +19,7 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   469
 API defined by the libibverbs library.  The libibverbs library provides the
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   470
 underlying interfaces needed to send and receive data.
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   471
 .P
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   472
-The RDMA CM can operate asynchronously or synchronously.  The mode of
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   473
+The RDMA CM operates asynchronously.  The mode of
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   474
 operation is controlled by the user through the use of the rdma_cm event channel
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   475
 parameter in specific calls.  If an event channel is provided, an rdma_cm identifier
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   476
 will report its event data (results of connecting, for example), on that channel.
3253
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   477
@@ -31,44 +31,10 @@
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   478
 of the more commonly used verbs funcationality.  The full set of abstracted
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   479
 verb calls are:
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   480
 .P
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   481
-rdma_reg_msgs  - register an array of buffers for sending and receiving
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   482
-.P
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   483
-rdma_reg_read  - registers a buffer for RDMA read operations
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   484
-.P
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   485
-rdma_reg_write - registers a buffer for RDMA write operations
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   486
-.P
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   487
-rdma_dereg_mr  - deregisters a memory region
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   488
-.P
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   489
-rdma_post_recv  - post a buffer to receive a message
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   490
-.P
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   491
-rdma_post_send  - post a buffer to send a message
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   492
-.P
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   493
-rdma_post_read  - post an RDMA to read data into a buffer
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   494
-.P
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   495
-rdma_post_write - post an RDMA to send data from a buffer
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   496
-.P
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   497
-rdma_post_recvv  - post a vector of buffers to receive a message
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   498
-.P
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   499
-rdma_post_sendv  - post a vector of buffers to send a message
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   500
-.P
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   501
-rdma_post_readv  - post a vector of buffers to receive an RDMA read
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   502
-.P
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   503
-rdma_post_writev - post a vector of buffers to send an RDMA write
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   504
-.P
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   505
-rdma_post_ud_send - post a buffer to send a message on a UD QP
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   506
-.P
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   507
-rdma_get_send_comp - get completion status for a send or RDMA operation
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   508
-.P
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   509
-rdma_get_recv_comp - get information about a completed receive
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   510
 .SH "CLIENT OPERATION"
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   511
 This section provides a general overview of the basic operation for the active,
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   512
 or client, side of communication.  This flow assume asynchronous operation with
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   513
-low level call details shown.  For
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   514
-synchronous operation, calls to rdma_create_event_channel, rdma_get_cm_event,
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   515
-rdma_ack_cm_event, and rdma_destroy_event_channel
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   516
-would be eliminated.  Abstracted calls, such as rdma_create_ep encapsulate
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   517
-serveral of these calls under a single API.
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   518
-Users may also refer to the example applications for
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   519
+low level call details shown.  Users may also refer to the example applications for
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   520
 code samples.  A general connection flow would be:
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   521
 .IP rdma_getaddrinfo
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   522
 retrieve address information of the destination
3253
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   523
@@ -178,12 +144,9 @@
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   524
 rdma_ack_cm_event(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   525
 rdma_bind_addr(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   526
 rdma_connect(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   527
-rdma_create_ep(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   528
 rdma_create_event_channel(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   529
 rdma_create_id(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   530
 rdma_create_qp(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   531
-rdma_dereg_mr(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   532
-rdma_destroy_ep(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   533
 rdma_destroy_event_channel(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   534
 rdma_destroy_id(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   535
 rdma_destroy_qp(3),
3253
c8cb45adf0d4 19229172 rdma_set_option.3 should be published
Boris Chiu <boris.chiu@oracle.com>
parents: 3228
diff changeset
   536
@@ -196,27 +159,11 @@
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   537
 rdma_get_dst_port(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   538
 rdma_get_local_addr(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   539
 rdma_get_peer_addr(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   540
-rdma_get_recv_comp(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   541
-rdma_get_request(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   542
-rdma_get_send_comp(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   543
 rdma_get_src_port(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   544
 rdma_join_multicast(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   545
 rdma_leave_multicast(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   546
 rdma_listen(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   547
-rdma_migrate_id(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   548
 rdma_notify(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   549
-rdma_post_read(3)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   550
-rdma_post_readv(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   551
-rdma_post_recv(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   552
-rdma_post_recvv(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   553
-rdma_post_send(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   554
-rdma_post_sendv(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   555
-rdma_post_ud_send(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   556
-rdma_post_write(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   557
-rdma_post_writev(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   558
-rdma_reg_msgs(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   559
-rdma_reg_read(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   560
-rdma_reg_write(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   561
 rdma_reject(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   562
 rdma_resolve_addr(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   563
 rdma_resolve_route(3),
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   564
diff -r -u /tmp/librdmacm-1.0.14.1/include/infiniband/ib.h librdmacm-1.0.14.1/include/infiniband/ib.h
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   565
--- /tmp/librdmacm-1.0.14.1/include/infiniband/ib.h	Mon Oct  4 17:00:18 2010
3203
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   566
+++ librdmacm-1.0.14.1/include/infiniband/ib.h	Wed Apr 30 10:52:05 2014
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   567
@@ -33,7 +33,11 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   568
 #if !defined(_RDMA_IB_H)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   569
 #define _RDMA_IB_H
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   570
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   571
+#if !(defined(__SVR4) && defined(__sun))
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   572
 #include <linux/types.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   573
+#else
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   574
+#include <infiniband/ofa_solaris.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   575
+#endif
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   576
 #include <string.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   577
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   578
 #ifndef AF_IB
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   579
diff -r -u /tmp/librdmacm-1.0.14.1/include/rdma/rdma_cma_abi.h librdmacm-1.0.14.1/include/rdma/rdma_cma_abi.h
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   580
--- /tmp/librdmacm-1.0.14.1/include/rdma/rdma_cma_abi.h	Mon Oct  4 17:00:18 2010
3203
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   581
+++ librdmacm-1.0.14.1/include/rdma/rdma_cma_abi.h	Wed Apr 30 10:52:05 2014
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   582
@@ -104,6 +104,9 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   583
 	__u64 response;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   584
 	struct sockaddr_in6 addr;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   585
 	__u32 id;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   586
+#if defined(__SVR4) && defined(__sun)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   587
+	uint32_t	reserved;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   588
+#endif
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   589
 };
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   590
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   591
 struct ucma_abi_bind {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   592
@@ -243,6 +246,9 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   593
 	__u64 uid;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   594
 	struct sockaddr_in6 addr;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   595
 	__u32 id;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   596
+#if defined(__SVR4) && defined(__sun)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   597
+	uint32_t	reserved;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   598
+#endif
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   599
 };
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   600
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   601
 struct ucma_abi_join_mcast {
3228
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   602
diff -r -u /tmp/librdmacm-1.0.14.1/include/rdma/rdma_cma.h librdmacm-1.0.14.1/include/rdma/rdma_cma.h
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   603
--- /tmp/librdmacm-1.0.14.1/include/rdma/rdma_cma.h	Fri Dec 10 12:05:34 2010
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   604
+++ librdmacm-1.0.14.1/include/rdma/rdma_cma.h	Wed Jul  2 13:40:09 2014
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   605
@@ -639,8 +639,9 @@
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   606
 
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   607
 /* Option details */
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   608
 enum {
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   609
-	RDMA_OPTION_ID_TOS	= 0,	/* uint8_t: RFC 2474 */
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   610
-	RDMA_OPTION_IB_PATH	= 1	/* struct ibv_path_data[] */
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   611
+	RDMA_OPTION_ID_TOS		= 0,	/* uint8_t: RFC 2474 */
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   612
+	RDMA_OPTION_IB_PATH		= 1,	/* struct ibv_path_data[] */
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   613
+	RDMA_OPTION_ID_REUSEADDR	= 1	/* int: ~SO_REUSEADDR */
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   614
 };
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   615
 
c1d23ce512f7 PSARC 2014/218 Userland RDMA CM Extension
Boris Chiu <boris.chiu@oracle.com>
parents: 3203
diff changeset
   616
 /**
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   617
diff -r -u /tmp/librdmacm-1.0.14.1/examples/udaddy.c librdmacm-1.0.14.1/examples/udaddy.c
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   618
--- /tmp/librdmacm-1.0.14.1/examples/udaddy.c	Mon Oct  4 17:00:18 2010
3203
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   619
+++ librdmacm-1.0.14.1/examples/udaddy.c	Wed Apr 30 11:48:05 2014
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   620
@@ -40,7 +40,9 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   621
 #include <netinet/in.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   622
 #include <sys/socket.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   623
 #include <netdb.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   624
+#if !(defined(__SVR4) && defined(__sun))
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   625
 #include <byteswap.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   626
+#endif
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   627
 #include <getopt.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   628
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   629
 #include <rdma/rdma_cma.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   630
diff -r -u /tmp/librdmacm-1.0.14.1/examples/mckey.c librdmacm-1.0.14.1/examples/mckey.c
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   631
--- /tmp/librdmacm-1.0.14.1/examples/mckey.c	Mon Oct  4 17:00:18 2010
3203
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   632
+++ librdmacm-1.0.14.1/examples/mckey.c	Wed Apr 30 11:48:05 2014
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   633
@@ -41,7 +41,9 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   634
 #include <arpa/inet.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   635
 #include <sys/socket.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   636
 #include <netdb.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   637
+#if !(defined(__SVR4) && defined(__sun))
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   638
 #include <byteswap.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   639
+#endif
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   640
 #include <unistd.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   641
 #include <getopt.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   642
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   643
@@ -329,6 +331,16 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   644
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   645
 	while (1) {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   646
 		ret = rdma_get_cm_event(test.channel, &event);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   647
+
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   648
+/* 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   649
+ * Solaris returns EBADF if we close the channel while we're waiting
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   650
+ * for any events to occur. It is safe to ignore EBADF here.
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   651
+ */
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   652
+#if defined(__SVR4) && defined(__sun)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   653
+		if (ret && (errno == EBADF))
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   654
+			break;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   655
+#endif
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   656
+
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   657
 		if (ret) {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   658
 			perror("rdma_get_cm_event");
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   659
 			break;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   660
@@ -461,6 +473,7 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   661
 	return ret;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   662
 }
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   663
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   664
+#if !(defined(__SVR4) && defined(__sun))
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   665
 static int get_dst_addr(char *dst, struct sockaddr *addr)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   666
 {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   667
 	struct sockaddr_ib *sib;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   668
@@ -474,6 +487,7 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   669
 	inet_pton(AF_INET6, dst, &sib->sib_addr);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   670
 	return 0;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   671
 }
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   672
+#endif
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   673
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   674
 static int run(void)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   675
 {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   676
@@ -486,7 +500,12 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   677
 			return ret;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   678
 	}
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   679
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   680
+/* Solaris does not yet support family AF_IB */
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   681
+#if defined(__SVR4) && defined(__sun)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   682
+	ret = get_addr(dst_addr, (struct sockaddr *) &test.dst_in);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   683
+#else
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   684
 	ret = get_dst_addr(dst_addr, (struct sockaddr *) &test.dst_in);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   685
+#endif
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   686
 	if (ret)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   687
 		return ret;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   688
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   689
diff -r -u /tmp/librdmacm-1.0.14.1/examples/cmatose.c librdmacm-1.0.14.1/examples/cmatose.c
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   690
--- /tmp/librdmacm-1.0.14.1/examples/cmatose.c	Mon Oct  4 17:00:18 2010
3203
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   691
+++ librdmacm-1.0.14.1/examples/cmatose.c	Wed Apr 30 11:48:03 2014
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   692
@@ -40,7 +40,9 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   693
 #include <netinet/in.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   694
 #include <sys/socket.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   695
 #include <netdb.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   696
+#if !(defined(__SVR4) && defined(__sun))
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   697
 #include <byteswap.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   698
+#endif
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   699
 #include <getopt.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   700
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   701
 #include <rdma/rdma_cma.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   702
diff -r -u /tmp/librdmacm-1.0.14.1/examples/rping.c librdmacm-1.0.14.1/examples/rping.c
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   703
--- /tmp/librdmacm-1.0.14.1/examples/rping.c	Tue Feb 15 17:10:48 2011
3203
bacc4a64b2b3 15695368 SUNBT7017250 man page from rds-stress has incorect entry for rdma bytes transmi
Boris Chiu <boris.chiu@oracle.com>
parents: 2532
diff changeset
   704
+++ librdmacm-1.0.14.1/examples/rping.c	Wed Apr 30 11:48:04 2014
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   705
@@ -40,11 +40,17 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   706
 #include <netinet/in.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   707
 #include <sys/socket.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   708
 #include <netdb.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   709
+#if !(defined(__SVR4) && defined(__sun))
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   710
 #include <byteswap.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   711
+#endif
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   712
 #include <semaphore.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   713
 #include <arpa/inet.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   714
 #include <pthread.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   715
 #include <inttypes.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   716
+#if defined(__SVR4) && defined(__sun)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   717
+#include <unistd.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   718
+#include <libgen.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   719
+#endif
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   720
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   721
 #include <rdma/rdma_cma.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   722
 #include <infiniband/arch.h>
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   723
@@ -85,6 +91,13 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   724
 	ERROR
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   725
 };
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   726
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   727
+enum disconnect_state {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   728
+	DISCONNECT_NONE,
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   729
+	CALLING_DISCONNECT = 1,
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   730
+	DISCONNECT_CALLED,
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   731
+	DISCONNECT_DONE
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   732
+};
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   733
+
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   734
 struct rping_rdma_info {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   735
 	uint64_t buf;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   736
 	uint32_t rkey;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   737
@@ -143,6 +156,9 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   738
 	enum test_state state;		/* used for cond/signalling */
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   739
 	sem_t sem;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   740
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   741
+	enum disconnect_state  dis_state;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   742
+	sem_t dis_sem;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   743
+
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   744
 	struct sockaddr_storage sin;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   745
 	uint16_t port;			/* dst port in NBO */
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   746
 	int verbose;			/* verbose logging */
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   747
@@ -218,6 +234,8 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   748
 		fprintf(stderr, "%s DISCONNECT EVENT...\n",
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   749
 			cb->server ? "server" : "client");
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   750
 		sem_post(&cb->sem);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   751
+		cb->dis_state = DISCONNECT_DONE;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   752
+		sem_post(&cb->dis_sem);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   753
 		break;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   754
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   755
 	case RDMA_CM_EVENT_DEVICE_REMOVAL:
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   756
@@ -285,6 +303,29 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   757
 					"cq completion failed status %d\n",
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   758
 					wc.status);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   759
 				ret = -1;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   760
+			} else {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   761
+				/*
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   762
+				 * FLUSH Error can be polled before RDMA-CM
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   763
+				 * DISCONNECT is notified. Ensure that cb_state
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   764
+				 * is set appropriately in such a case.
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   765
+				 * sleep for sometime if Disconnect has not
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   766
+				 * been called. The FLUSH WR can be because
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   767
+				 * the remote end initiated the disconnect.
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   768
+				 */
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   769
+				if (cb->dis_state == DISCONNECT_NONE)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   770
+					sleep(2);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   771
+
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   772
+				if (cb->dis_state == DISCONNECT_DONE)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   773
+					return (0);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   774
+
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   775
+				/* Wait if disconnect is called. */
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   776
+				if (cb->dis_state == DISCONNECT_CALLED) {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   777
+					sem_wait(&cb->dis_sem);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   778
+					if (cb->dis_state == DISCONNECT_DONE)
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   779
+						return (0);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   780
+					else
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   781
+						goto error;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   782
+				}
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   783
 			}
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   784
 			goto error;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   785
 		}
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   786
@@ -571,9 +612,15 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   787
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   788
 	while (1) {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   789
 		ret = rdma_get_cm_event(cb->cm_channel, &event);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   790
-		if (ret) {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   791
+		/*
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   792
+		 * If the retry of read() syscall returned EBADF, as the
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   793
+		 * file was closed on process exit. Ignore this error.
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   794
+		 */
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   795
+		if (ret && errno != EBADF) {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   796
 			perror("rdma_get_cm_event");
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   797
 			exit(ret);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   798
+		} else if (ret && errno == EBADF) {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   799
+			exit(0);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   800
 		}
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   801
 		ret = rping_cma_event_handler(event->id, event);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   802
 		rdma_ack_cm_event(event);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   803
@@ -595,8 +642,14 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   804
 		pthread_testcancel();
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   805
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   806
 		ret = ibv_get_cq_event(cb->channel, &ev_cq, &ev_ctx);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   807
-		if (ret) {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   808
+		/*
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   809
+		 * If the retry of write() syscall returned EBADF, as the
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   810
+		 * file was closed on process exit. Ignore this error.
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   811
+		 */
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   812
+		if (ret && errno != EBADF) {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   813
 			fprintf(stderr, "Failed to get cq event!\n");
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   814
+			 pthread_exit(NULL);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   815
+		} else if (ret && errno == EBADF) {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   816
 			pthread_exit(NULL);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   817
 		}
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   818
 		if (ev_cq != cb->cq) {
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   819
@@ -801,11 +854,13 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   820
 	}
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   821
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   822
 	rping_test_server(cb);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   823
+	cb->dis_state = CALLING_DISCONNECT;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   824
+	sem_post(&cb->dis_sem);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   825
 	rdma_disconnect(cb->child_cm_id);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   826
-	rping_free_buffers(cb);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   827
-	rping_free_qp(cb);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   828
 	pthread_cancel(cb->cqthread);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   829
 	pthread_join(cb->cqthread, NULL);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   830
+	rping_free_buffers(cb);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   831
+	rping_free_qp(cb);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   832
 	rdma_destroy_id(cb->child_cm_id);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   833
 	free_cb(cb);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   834
 	return NULL;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   835
@@ -889,6 +944,8 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   836
 	}
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   837
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   838
 	rping_test_server(cb);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   839
+	cb->dis_state = CALLING_DISCONNECT;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   840
+	sem_post(&cb->dis_sem);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   841
 	rdma_disconnect(cb->child_cm_id);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   842
 	rdma_destroy_id(cb->child_cm_id);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   843
 err2:
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   844
@@ -1056,6 +1113,8 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   845
 	}
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   846
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   847
 	rping_test_client(cb);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   848
+	cb->dis_state = CALLING_DISCONNECT;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   849
+	sem_post(&cb->dis_sem);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   850
 	rdma_disconnect(cb->cm_id);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   851
 err2:
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   852
 	rping_free_buffers(cb);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   853
@@ -1123,6 +1182,7 @@
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   854
 	cb->sin.ss_family = PF_INET;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   855
 	cb->port = htons(7174);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   856
 	sem_init(&cb->sem, 0, 0);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   857
+	sem_init(&cb->dis_sem, 0, 0);
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   858
 
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   859
 	opterr = 0;
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents:
diff changeset
   860
 	while ((op=getopt(argc, argv, "a:Pp:C:S:t:scvVd")) != -1) {