]> git.openfabrics.org - ~shefty/librdmacm.git/commitdiff
Refresh of rs-with-acm
authorSean Hefty <sean.hefty@intel.com>
Fri, 25 May 2012 19:25:05 +0000 (12:25 -0700)
committerSean Hefty <sean.hefty@intel.com>
Fri, 25 May 2012 19:25:05 +0000 (12:25 -0700)
src/acm.c
src/addrinfo.c
src/cma.c
src/cma.h
src/rsocket.c

index 9c6591958bcd1b3eda9b8e092e58cdb9a1d325ba..d59efcf80d0a8f4bf87924e61285e02d43285768 100755 (executable)
--- a/src/acm.c
+++ b/src/acm.c
@@ -86,15 +86,20 @@ static void ucma_set_server_port(void)
        }
 }
 
-void ucma_ib_init(void)
+void ucma_acm_init(void)
 {
        struct sockaddr_in addr;
+       static int init;
        int ret;
 
+       if (init)
+               return;
+
+       pthread_mutex_lock(&acm_lock);
        ucma_set_server_port();
        sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
        if (sock < 0)
-               return;
+               goto err1;
 
        memset(&addr, 0, sizeof addr);
        addr.sin_family = AF_INET;
@@ -102,13 +107,18 @@ void ucma_ib_init(void)
        addr.sin_port = htons(server_port);
        ret = connect(sock, (struct sockaddr *) &addr, sizeof(addr));
        if (ret)
-               goto err;
+               goto err2;
 
+       init = 1;
+       pthread_mutex_unlock(&acm_lock);
        return;
 
-err:
+err2:
        close(sock);
        sock = -1;
+err1:
+       init = 1;
+       pthread_mutex_unlock(&acm_lock);
 }
 
 void ucma_ib_cleanup(void)
index 2da35f0126389feac23077d03277074f5767b6bb..573fb42c1443ab935629b55c6eab7323024dd3d2 100755 (executable)
@@ -231,7 +231,7 @@ int rdma_getaddrinfo(char *node, char *service,
        }
 
        if (!(rai->ai_flags & RAI_PASSIVE))
-               ucma_ib_resolve(&rai, hints);
+               ucma_acm_resolve(&rai, hints);
 
        *res = rai;
        return 0;
index 753612c566a4293252f273bfe32cd1925de6ebca..c0cd407dcfce2387593e60985ba50566c60ba68e 100755 (executable)
--- a/src/cma.c
+++ b/src/cma.c
@@ -128,7 +128,7 @@ int af_ib_support;
 
 static void ucma_cleanup(void)
 {
-       ucma_ib_cleanup();
+       ucma_acm_cleanup();
 
        if (cma_dev_cnt) {
                while (cma_dev_cnt--) {
@@ -274,8 +274,6 @@ int ucma_init(void)
                ib += (cma_dev->verbs->device->transport_type == IBV_TRANSPORT_IB);
        }
 
-       if (ib)
-               ucma_ib_init();
        cma_dev_cnt = dev_cnt;
        ucma_set_af_ib_support();
        pthread_mutex_unlock(&mut);
index 2f5215c10298646a3a55514492d42ca7f3cdee5f..c673bda7a8c215c124163c0da91dbeca2a902142 100644 (file)
--- a/src/cma.h
+++ b/src/cma.h
@@ -119,13 +119,11 @@ extern int af_ib_support;
 #define RAI_ROUTEONLY          0x01000000
 
 #ifdef USE_IB_ACM
-void ucma_ib_init();
-void ucma_ib_cleanup();
-void ucma_ib_resolve(struct rdma_addrinfo **rai, struct rdma_addrinfo *hints);
+void ucma_acm_cleanup();
+void ucma_acm_resolve(struct rdma_addrinfo **rai, struct rdma_addrinfo *hints);
 #else
-#define ucma_ib_init()
-#define ucma_ib_cleanup()
-#define ucma_ib_resolve(x, y)
+#define ucma_acm_cleanup()
+#define ucma_acm_resolve(x, y)
 #endif
 
 /* Define path record definition if using older version of libibverbs */
index 6bc02f7acc13d52e0f0ea3402ba70d59b4b4cdb5..5eec5d9c6a8f0cfa5f34e3d945a5baec3f49fa3e 100644 (file)
@@ -51,7 +51,6 @@
 #include "cma.h"
 #include "indexer.h"
 
-#define RS_INLINE 64
 #define RS_OLAP_START_SIZE 2048
 #define RS_MAX_TRANSFER 65536
 #define RS_QP_SIZE 384
@@ -109,7 +108,7 @@ struct rs_sge {
        uint32_t length;
 };
 
-#define RS_INLINE_MIN    (sizeof(struct rs_sge))
+#define RS_MIN_INLINE    (sizeof(struct rs_sge))
 #define rs_host_is_net() (1 == htonl(1))
 #define RS_CONN_FLAG_NET 1
 
@@ -223,7 +222,7 @@ static struct rsocket *rs_alloc(struct rsocket *inherited_rs)
                rs->ctrl_avail = inherited_rs->ctrl_avail;
        } else {
                rs->sbuf_size = rs->rbuf_size = RS_BUF_SIZE;
-               rs->sq_inline = RS_INLINE;
+               rs->sq_inline = RS_MIN_INLINE;
                rs->sq_size = rs->rq_size = RS_QP_SIZE;
                rs->ctrl_avail = RS_QP_CTRL_SIZE;
        }
@@ -1676,8 +1675,8 @@ int rsetsockopt(int socket, int level, int optname,
                        break;
                case RDMA_INLINE:
                        rs->sq_inline = min(*(uint32_t *) optval, RS_QP_MAX_SIZE);
-                       if (rs->sq_inline < RS_INLINE_MIN)
-                               rs->sq_inline = RS_INLINE_MIN;
+                       if (rs->sq_inline < RS_MIN_INLINE)
+                               rs->sq_inline = RS_MIN_INLINE;
                        break;
                default:
                        break;