}
}
-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;
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)
}
if (!(rai->ai_flags & RAI_PASSIVE))
- ucma_ib_resolve(&rai, hints);
+ ucma_acm_resolve(&rai, hints);
*res = rai;
return 0;
static void ucma_cleanup(void)
{
- ucma_ib_cleanup();
+ ucma_acm_cleanup();
if (cma_dev_cnt) {
while (cma_dev_cnt--) {
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);
#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 */
#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
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
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;
}
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;