[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