[v3] eal/windows: set Windows main lcore affinitization

Message ID 1649940223-11193-1-git-send-email-roretzla@linux.microsoft.com (mailing list archive)
State Accepted, archived
Delegated to: David Marchand
Headers
Series [v3] eal/windows: set Windows main lcore affinitization |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/iol-mellanox-Performance success Performance Testing PASS
ci/github-robot: build success github build: passed
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-abi-testing success Testing PASS
ci/intel-Testing success Testing PASS

Commit Message

Tyler Retzlaff April 14, 2022, 12:43 p.m. UTC
  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

David Marchand April 14, 2022, 1:08 p.m. UTC | #1
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>
  
David Marchand April 25, 2022, 8:28 a.m. UTC | #2
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.
  

Patch

diff --git a/lib/eal/windows/eal.c b/lib/eal/windows/eal.c
index ca3c41a..98d8b15 100644
--- a/lib/eal/windows/eal.c
+++ b/lib/eal/windows/eal.c
@@ -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) {
 
 		/*