[Pkg-ofed-commits] [libfabric] 48/123: pr/sockets: Increase default connection map size

Ana Beatriz Guerrero López ana at moszumanska.debian.org
Sat Oct 22 12:28:29 UTC 2016


This is an automated email from the git hooks/post-receive script.

ana pushed a commit to annotated tag v1.1.1
in repository libfabric.

commit f76c8c7378b9d0aa34c89b17467b792d825dc941
Author: Jithin Jose <jithin.jose at intel.com>
Date:   Thu Aug 27 18:01:06 2015 -0700

    pr/sockets: Increase default connection map size
    
    Signed-off-by: Jithin Jose <jithin.jose at intel.com>
    
    Conflicts:
    	prov/sockets/src/sock_conn.c
---
 configure.ac                   |  7 +++++++
 prov/sockets/src/sock.h        |  5 +++++
 prov/sockets/src/sock_dom.c    |  2 +-
 prov/sockets/src/sock_ep_msg.c | 27 ++++++++++-----------------
 4 files changed, 23 insertions(+), 18 deletions(-)

diff --git a/configure.ac b/configure.ac
index bc447b7..87cd14b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -143,6 +143,13 @@ AC_CACHE_CHECK(whether ld accepts --version-script, ac_cv_version_script,
         ac_cv_version_script=no
     fi])
 
+AC_CHECK_DECL([SO_REUSEPORT],
+    AC_DEFINE(HAVE_SO_REUSEPORT,1,[Define to 1 if you have SO_REUSEPORT]),
+    ,[
+    #include <sys/types.h>
+    #include <sys/socket.h>
+    ])
+
 AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$ac_cv_version_script" = "yes")
 
 dnl Disable symbol versioning when -ipo is in CFLAGS or ipo is disabled by icc.
diff --git a/prov/sockets/src/sock.h b/prov/sockets/src/sock.h
index 6aa4b74..90f01dc 100644
--- a/prov/sockets/src/sock.h
+++ b/prov/sockets/src/sock.h
@@ -87,6 +87,7 @@
 #define SOCK_EQ_DEF_SZ (1<<8)
 #define SOCK_CQ_DEF_SZ (1<<8)
 #define SOCK_AV_DEF_SZ (1<<8)
+#define SOCK_CMAP_DEF_SZ (1<<10)
 
 #define SOCK_CQ_DATA_SIZE (sizeof(uint64_t))
 #define SOCK_TAG_SIZE (sizeof(uint64_t))
@@ -1048,6 +1049,10 @@ void sock_conn_map_destroy(struct sock_conn_map *cmap);
 void sock_set_sockopts(int sock);
 int fd_set_nonblock(int fd);
 int sock_conn_map_init(struct sock_conn_map *map, int init_size);
+void sock_set_sockopt_reuseaddr(int sock);
+#ifdef HAVE_SO_REUSEPORT
+int sock_set_sockopt_reuseport(int sock);
+#endif
 
 struct sock_pe *sock_pe_init(struct sock_domain *domain);
 void sock_pe_add_tx_ctx(struct sock_pe *pe, struct sock_tx_ctx *ctx);
diff --git a/prov/sockets/src/sock_dom.c b/prov/sockets/src/sock_dom.c
index ab39b78..dd9a86a 100644
--- a/prov/sockets/src/sock_dom.c
+++ b/prov/sockets/src/sock_dom.c
@@ -496,7 +496,7 @@ int sock_domain(struct fid_fabric *fabric, struct fi_info *info,
 		goto err;
 	}
 
-	if (sock_conn_map_init(&sock_domain->r_cmap, 128))
+	if (sock_conn_map_init(&sock_domain->r_cmap, SOCK_CMAP_DEF_SZ))
 		goto err;
 
 	sock_domain->r_cmap.domain = sock_domain;
diff --git a/prov/sockets/src/sock_ep_msg.c b/prov/sockets/src/sock_ep_msg.c
index f96faa6..07d5588 100644
--- a/prov/sockets/src/sock_ep_msg.c
+++ b/prov/sockets/src/sock_ep_msg.c
@@ -266,7 +266,7 @@ static int sock_ep_cm_getname(fid_t fid, void *addr, size_t *addrlen)
 
 static int sock_pep_create_listener(struct sock_pep *pep)
 {
-	int optval, ret;
+	int ret;
 	socklen_t addr_size;
 	struct sockaddr_in addr;
 	struct addrinfo *s_res = NULL, *p;
@@ -297,11 +297,11 @@ static int sock_pep_create_listener(struct sock_pep *pep)
 		pep->cm.sock = socket(p->ai_family, p->ai_socktype,
 				     p->ai_protocol);
 		if (pep->cm.sock >= 0) {
-			optval = 1;
-			if (setsockopt(pep->cm.sock, SOL_SOCKET, SO_REUSEADDR, &optval, 
-				       sizeof optval))
-				SOCK_LOG_ERROR("setsockopt failed\n");
-			
+			sock_set_sockopt_reuseaddr(pep->cm.sock);
+#ifdef HAVE_SO_REUSEPORT
+			if (sock_set_sockopt_reuseport(pep->cm.sock))
+				SOCK_LOG_DBG("reuseport sockopt failed\n");
+#endif
 			if (!bind(pep->cm.sock, s_res->ai_addr, s_res->ai_addrlen))
 				break;
 			close(pep->cm.sock);
@@ -312,12 +312,8 @@ static int sock_pep_create_listener(struct sock_pep *pep)
 	freeaddrinfo(s_res);
 	if (pep->cm.sock < 0)
 		return -FI_EIO;
-	
-	optval = 1;
-	if (setsockopt(pep->cm.sock, SOL_SOCKET, SO_REUSEADDR, &optval, 
-		       sizeof optval))
-		SOCK_LOG_ERROR("setsockopt failed\n");
-	
+
+	sock_set_sockopt_reuseaddr(pep->cm.sock);	
 	if (pep->src_addr.sin_port == 0) {
 		addr_size = sizeof(addr);
 		if (getsockname(pep->cm.sock, (struct sockaddr*)&addr, &addr_size))
@@ -396,15 +392,12 @@ static int sock_ep_cm_getpeer(struct fid_ep *ep, void *addr, size_t *addrlen)
 
 static int sock_ep_cm_create_socket(void)
 {
-	int sock, optval;
+	int sock;
 	sock = socket(AF_INET, SOCK_DGRAM, 0);
 	if (sock < 0)
 		return 0;
 	
-	optval = 1;
-	if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, 
-		       &optval, sizeof optval))
-		SOCK_LOG_ERROR("setsockopt failed\n");
+	sock_set_sockopt_reuseaddr(sock);
 	return sock;
 }
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ofed/libfabric.git



More information about the Pkg-ofed-commits mailing list