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 <qiao.liu@intel.com> Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com> --- 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. */
Acked-by: Ranjit Menon <ranjit.menon@intel.com>