Hello Tyler, On Wed, Mar 30, 2022 at 11:00 AM Tyler Retzlaff <roret...@linux.microsoft.com> wrote: > > add missing code to affinitize main_lcore from lcore configuration.
Nit: Add* > > Signed-off-by: Tyler Retzlaff <roret...@linux.microsoft.com> > --- > lib/eal/windows/eal.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/lib/eal/windows/eal.c b/lib/eal/windows/eal.c > index ca3c41a..9c61780 100644 > --- a/lib/eal/windows/eal.c > +++ b/lib/eal/windows/eal.c > @@ -401,6 +401,12 @@ enum rte_proc_type_t > 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); > - It looks like the affinity is dumped for workers (see below), I would dump affinity for the main lcore like other OS do: ret = eal_thread_dump_current_affinity(cpuset, sizeof(cpuset)); RTE_LOG(DEBUG, EAL, "Main lcore %u is ready (tid=%p;cpuset=[%s%s])\n", config->main_lcore, thread_id, cpuset, ret == 0 ? "" : "..."); - Which makes me notice that windows/eal_thread.c probably dumps random stuff in logs because it is missing a call to eal_thread_dump_current_affinity() to format affinity as a string. lib/eal/windows/eal_thread.c: char cpuset[RTE_CPU_AFFINITY_STR_LEN]; lib/eal/windows/eal_thread.c: __rte_thread_init(lcore_id, &lcore_config[lcore_id].cpuset); lib/eal/windows/eal_thread.c: RTE_LOG(DEBUG, EAL, "lcore %u is ready (tid=%zx;cpuset=[%s])\n", lib/eal/windows/eal_thread.c: lcore_id, (uintptr_t)thread_id, cpuset); -- David Marchand