From 416c1bef9dbc9aed437f87e735500589d2e3d844 Mon Sep 17 00:00:00 2001 From: Pallavi Kadam Date: Thu, 20 Jan 2022 16:17:49 -0800 Subject: [PATCH] eal/windows: set worker thread affinity at init Sometimes OS tries to switch the core. So, bind the lcore thread to a fixed core. Implement affinity call on Windows similar to Linux. Signed-off-by: Qiao Liu Signed-off-by: Pallavi Kadam Acked-by: Narcisa Vasile Acked-by: Ranjit Menon Acked-by: Tal Shnaiderman Tested-by: Idan Hackmon --- lib/eal/windows/eal.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/eal/windows/eal.c b/lib/eal/windows/eal.c index 67db7f099a..ca3c41aaa7 100644 --- a/lib/eal/windows/eal.c +++ b/lib/eal/windows/eal.c @@ -422,6 +422,10 @@ rte_eal_init(int argc, char **argv) /* create a thread for each lcore */ if (eal_thread_create(&lcore_config[i].thread_id) != 0) rte_panic("Cannot create thread\n"); + ret = pthread_setaffinity_np(lcore_config[i].thread_id, + sizeof(rte_cpuset_t), &lcore_config[i].cpuset); + if (ret != 0) + RTE_LOG(DEBUG, EAL, "Cannot set affinity\n"); } /* Initialize services so drivers can register services during probe. */ -- 2.39.5