[Pkg-ofed-commits] [libfabric] 56/123: prov/sockets: Added a function to read default env values, seperated from the definition

Ana Beatriz Guerrero López ana at moszumanska.debian.org
Sat Oct 22 12:28:30 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 04930b5a4e2b40cef432dabb82546c59f6c48d0a
Author: shantonu <shantonu.hossain at intel.com>
Date:   Fri Sep 4 18:01:35 2015 -0700

    prov/sockets: Added a function to read default env values, seperated from the definition
    
    Signed-off-by: Shantonu Hossain <shantonu.hossain at intel.com>
---
 man/fi_sockets.7.md              |  6 +++---
 prov/sockets/src/sock_fabric.c   | 32 +++++++++++++++++++++++++-------
 prov/sockets/src/sock_progress.c | 10 +++-------
 prov/sockets/src/sock_util.h     |  1 +
 4 files changed, 32 insertions(+), 17 deletions(-)

diff --git a/man/fi_sockets.7.md b/man/fi_sockets.7.md
index 80c14eb..7f8e0b7 100644
--- a/man/fi_sockets.7.md
+++ b/man/fi_sockets.7.md
@@ -79,9 +79,9 @@ The sockets provider checks for the following environment variables -
 *FI_SOCKETS_PE_AFFINITY*
 : If specified, progress thread is bound to the indicated range(s) of Linux virtual processor ID(s). This option is currently not supported on OS X. The usage is - id_start[-id_end[:stride]][,].
 
-# MISCELLANEOUS
-
-For large scale runs one can use these environment variables to tweak the default sizes of the address vector(AV), completion queue (CQ), connection map etc. that satisfies the requriment of the particular benchmark. The recommended parameters for large scale runs are *FI_SOCKETS_MAX_CONN_RETRY*, *FI_SOCKETS_DEF_CONN_MAP_SZ*, *FI_SOCKETS_DEF_AV_SZ*, *FI_SOCKETS_DEF_CQ_SZ*, *FI_SOCKETS_DEF_EQ_SZ*.
+# LARGE SCALE JOBS
+ 
+For large scale runs one can use these environment variables to set the default parameters e.g. size of the address vector(AV), completion queue (CQ), connection map etc. that satisfies the requriment of the particular benchmark. The recommended parameters for large scale runs are *FI_SOCKETS_MAX_CONN_RETRY*, *FI_SOCKETS_DEF_CONN_MAP_SZ*, *FI_SOCKETS_DEF_AV_SZ*, *FI_SOCKETS_DEF_CQ_SZ*, *FI_SOCKETS_DEF_EQ_SZ*.
 
 # SEE ALSO
 
diff --git a/prov/sockets/src/sock_fabric.c b/prov/sockets/src/sock_fabric.c
index 1ba9ced..c2f231b 100644
--- a/prov/sockets/src/sock_fabric.c
+++ b/prov/sockets/src/sock_fabric.c
@@ -59,6 +59,7 @@ int sock_cm_def_map_sz = SOCK_CMAP_DEF_SZ;
 int sock_av_def_sz = SOCK_AV_DEF_SZ;
 int sock_cq_def_sz = SOCK_CQ_DEF_SZ;
 int sock_eq_def_sz = SOCK_EQ_DEF_SZ;
+char *sock_pe_affinity_str = NULL;
 #if ENABLE_DEBUG
 int sock_dgram_drop_rate = 0;
 #endif
@@ -73,6 +74,7 @@ const struct fi_fabric_attr sock_fabric_attr = {
 static struct dlist_entry sock_fab_list;
 static struct dlist_entry sock_dom_list;
 static fastlock_t sock_list_lock;
+static int read_default_params = 0;
 
 void sock_dom_add_to_list(struct sock_domain *domain)
 {
@@ -307,6 +309,23 @@ static struct fi_ops sock_fab_fi_ops = {
 	.ops_open = fi_no_ops_open,
 };
 
+static void sock_read_default_params() {
+	if (!read_default_params) {
+		fi_param_get_int(&sock_prov, "pe_waittime", &sock_pe_waittime);
+		fi_param_get_int(&sock_prov, "max_conn_retry", &sock_conn_retry);
+		fi_param_get_int(&sock_prov, "def_conn_map_sz", &sock_cm_def_map_sz);
+		fi_param_get_int(&sock_prov, "def_av_sz", &sock_av_def_sz);
+		fi_param_get_int(&sock_prov, "def_cq_sz", &sock_cq_def_sz);
+		fi_param_get_int(&sock_prov, "def_eq_sz", &sock_eq_def_sz);
+		if(fi_param_get_str(&sock_prov, "pe_affinity", &sock_pe_affinity_str) != FI_SUCCESS)
+			sock_pe_affinity_str = NULL;
+#if ENABLE_DEBUG
+		fi_param_get_int(&sock_prov, "dgram_drop_rate", &sock_dgram_drop_rate);
+#endif
+		read_default_params = 1;
+	}
+}
+
 static int sock_fabric(struct fi_fabric_attr *attr,
 		       struct fid_fabric **fabric, void *context)
 {
@@ -319,6 +338,8 @@ static int sock_fabric(struct fi_fabric_attr *attr,
 	if (!fab)
 		return -FI_ENOMEM;
 
+	sock_read_default_params();
+
 	fastlock_init(&fab->lock);
 	dlist_init(&fab->service_list);
 	
@@ -583,27 +604,25 @@ SOCKETS_INI
 {
 	fi_param_define(&sock_prov, "pe_waittime", FI_PARAM_INT,
                         "How many milliseconds to spin while waiting for progress");
-	fi_param_get_int(&sock_prov, "pe_waittime", &sock_pe_waittime);
 
 	fi_param_define(&sock_prov, "max_conn_retry", FI_PARAM_INT,
 			"Number of connection retries before reporting as failure");
-	fi_param_get_int(&sock_prov, "max_conn_retry", &sock_conn_retry);
 
 	fi_param_define(&sock_prov, "def_conn_map_sz", FI_PARAM_INT,
 			"Default connection map size");
-	fi_param_get_int(&sock_prov, "def_conn_map_sz", &sock_cm_def_map_sz);
 
 	fi_param_define(&sock_prov, "def_av_sz", FI_PARAM_INT,
 			"Default address vector size");
-	fi_param_get_int(&sock_prov, "def_av_sz", &sock_av_def_sz);
 
 	fi_param_define(&sock_prov, "def_cq_sz", FI_PARAM_INT,
 			"Default completion queue size");
-	fi_param_get_int(&sock_prov, "def_cq_sz", &sock_cq_def_sz);
 
 	fi_param_define(&sock_prov, "def_eq_sz", FI_PARAM_INT,
 			"Default event queue size");
-	fi_param_get_int(&sock_prov, "def_eq_sz", &sock_eq_def_sz);
+	
+	fi_param_define(&sock_prov, "pe_affinity", FI_PARAM_STRING,
+                        "If specified, bind the progress thread to the indicated range(s) of Linux virtual processor ID(s). "
+                        "This option is currently not supported on OS X. Usage: id_start[-id_end[:stride]][,]");
 
 	fastlock_init(&sock_list_lock);
 	dlist_init(&sock_fab_list);
@@ -611,7 +630,6 @@ SOCKETS_INI
 #if ENABLE_DEBUG
 	fi_param_define(&sock_prov, "dgram_drop_rate", FI_PARAM_INT,
 			"Drop every Nth dgram frame (debug only)");
-	fi_param_get_int(&sock_prov, "dgram_drop_rate", &sock_dgram_drop_rate);
 #endif
 	return (&sock_prov);
 }
diff --git a/prov/sockets/src/sock_progress.c b/prov/sockets/src/sock_progress.c
index 9c63471..2bfb263 100644
--- a/prov/sockets/src/sock_progress.c
+++ b/prov/sockets/src/sock_progress.c
@@ -2547,17 +2547,13 @@ static void sock_thread_set_affinity(char *s)
 }
 #endif
 
-static void sock_pe_set_affinity (void)
+static void sock_pe_set_affinity(void)
 {
-	char *s;
-	fi_param_define(&sock_prov, "pe_affinity", FI_PARAM_STRING,
-			"If specified, bind the progress thread to the indicated range(s) of Linux virtual processor ID(s). "
-			"This option is currently not supported on OS X. Usage: id_start[-id_end[:stride]][,]");
-	if (fi_param_get_str(&sock_prov, "pe_affinity", &s) != FI_SUCCESS)
+	if (sock_pe_affinity_str == NULL)
 		return;
 	
 #ifndef __APPLE__
-	sock_thread_set_affinity(s);
+	sock_thread_set_affinity(sock_pe_affinity_str);
 #else
 	SOCK_LOG_ERROR("*** FI_SOCKETS_PE_AFFINITY is not supported on OS X\n");
 #endif
diff --git a/prov/sockets/src/sock_util.h b/prov/sockets/src/sock_util.h
index 614aa9e..849a8e9 100644
--- a/prov/sockets/src/sock_util.h
+++ b/prov/sockets/src/sock_util.h
@@ -47,6 +47,7 @@ extern int sock_cm_def_map_sz;
 extern int sock_av_def_sz;
 extern int sock_cq_def_sz;
 extern int sock_eq_def_sz;
+extern char *sock_pe_affinity_str;
 #if ENABLE_DEBUG
 extern int sock_dgram_drop_rate;
 #endif

-- 
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