Total cpu count is already being calculated as part of count_cpu_cores.
Consolidate both functions to avoid code duplication.

Signed-off-by: Adrian Moreno <[email protected]>
---
 lib/ovs-thread.c | 30 ++++++++++--------------------
 1 file changed, 10 insertions(+), 20 deletions(-)

diff --git a/lib/ovs-thread.c b/lib/ovs-thread.c
index 0e52a0da7..910d13e9c 100644
--- a/lib/ovs-thread.c
+++ b/lib/ovs-thread.c
@@ -632,22 +632,7 @@ ovs_thread_stats_next_bucket(const struct ovsthread_stats 
*stats, size_t i)
 int
 count_cpu_cores(void)
 {
-    static struct ovsthread_once once = OVSTHREAD_ONCE_INITIALIZER;
-    static long int n_total_cores;
-    long int n_cores;
-
-    if (ovsthread_once_start(&once)) {
-#ifndef _WIN32
-        n_total_cores = sysconf(_SC_NPROCESSORS_ONLN);
-#else
-        SYSTEM_INFO sysinfo;
-        GetSystemInfo(&sysinfo);
-        n_total_cores = sysinfo.dwNumberOfProcessors;
-#endif
-        ovsthread_once_done(&once);
-    }
-
-    n_cores = n_total_cores;
+    long int n_cores = count_total_cores();
 #ifdef __linux__
     if (n_cores > 0) {
         cpu_set_t *set = CPU_ALLOC(n_cores);
@@ -670,14 +655,19 @@ count_cpu_cores(void)
 int
 count_total_cores(void)
 {
-    long int n_cores;
+    static struct ovsthread_once once = OVSTHREAD_ONCE_INITIALIZER;
+    static long int n_cores;
 
+    if (ovsthread_once_start(&once)) {
 #ifndef _WIN32
-    n_cores = sysconf(_SC_NPROCESSORS_CONF);
+        n_cores = sysconf(_SC_NPROCESSORS_ONLN);
 #else
-    n_cores = 0;
-    errno = ENOTSUP;
+        SYSTEM_INFO sysinfo;
+        GetSystemInfo(&sysinfo);
+        n_cores = sysinfo.dwNumberOfProcessors;
 #endif
+        ovsthread_once_done(&once);
+    }
 
     return n_cores > 0 ? n_cores : 0;
 }
-- 
2.37.2

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to