[v3] eal/windows: set Windows main lcore affinitization
Checks
Commit Message
Add missing code to affinitize main_lcore from lcore configuration.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
---
v3: update commit message s/add/Add/
v2: RTE_LOG of eal_thread_dump_current_affinity as linux does
lib/eal/windows/eal.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
Comments
On Thu, Apr 14, 2022 at 2:43 PM Tyler Retzlaff
<roretzla@linux.microsoft.com> wrote:
>
> 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>
On Thu, Apr 14, 2022 at 3:08 PM David Marchand
<david.marchand@redhat.com> wrote:
>
> On Thu, Apr 14, 2022 at 2:43 PM Tyler Retzlaff
> <roretzla@linux.microsoft.com> wrote:
> >
> > 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>
Applied, thanks.
@@ -279,6 +279,7 @@ enum rte_proc_type_t
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 @@ 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);
+ 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) {
/*