]> git.droids-corp.org - dpdk.git/commitdiff
eal/windows: set main lcore affinity
authorTyler Retzlaff <roretzla@linux.microsoft.com>
Thu, 14 Apr 2022 12:43:43 +0000 (05:43 -0700)
committerDavid Marchand <david.marchand@redhat.com>
Mon, 25 Apr 2022 07:38:15 +0000 (09:38 +0200)
Add missing code to affinitize main_lcore from lcore configuration.

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
lib/eal/windows/eal.c

index 1874f9f6d7cd77b820e062714664a96f6f0d64d7..122de2a319446dd081c6691678889db0b0ce7f14 100644 (file)
@@ -279,6 +279,7 @@ rte_eal_init(int argc, char **argv)
        bool has_phys_addr;
        enum rte_iova_mode iova_mode;
        int ret;
+       char cpuset[RTE_CPU_AFFINITY_STR_LEN];
 
        eal_log_init(NULL, 0);
 
@@ -401,9 +402,20 @@ rte_eal_init(int argc, char **argv)
                return -1;
        }
 
+       if (pthread_setaffinity_np(pthread_self(), sizeof(rte_cpuset_t),
+                       &lcore_config[config->main_lcore].cpuset) != 0) {
+               rte_eal_init_alert("Cannot set affinity");
+               rte_errno = EINVAL;
+               return -1;
+       }
        __rte_thread_init(config->main_lcore,
                &lcore_config[config->main_lcore].cpuset);
 
+       ret = eal_thread_dump_current_affinity(cpuset, sizeof(cpuset));
+       RTE_LOG(DEBUG, EAL, "Main lcore %u is ready (tid=%zx;cpuset=[%s%s])\n",
+               config->main_lcore, (uintptr_t)pthread_self(), cpuset,
+               ret == 0 ? "" : "...");
+
        RTE_LCORE_FOREACH_WORKER(i) {
 
                /*