On 6/23/2026 4:07 PM, Bruce Richardson wrote: > On Tue, Jun 23, 2026 at 10:28:41AM +0530, Rupesh Chiluka wrote: >> Refuse to run DMA/CPU mem-copy cases when any worker is bound to the >> EAL main lcore. >> > > Can you explain a bit more why?
+1 I understand this bugfix, as the following config, the test will stuck because the master lcore is the same with worker lcore. [GLOBAL] eal_args=--in-memory --file-prefix=test -l 10-12 [case4] type=CPU_MEM_COPY mem_size=10 buf_size=64,8192,2,MUL src_numa_node=0 dst_numa_node=1 lcore = 10, 11 So please add more explain as Bruce suggest, and also add Fixes/CC tag > >> Signed-off-by: Rupesh Chiluka <[email protected]> >> --- >> app/test-dma-perf/main.c | 9 +++++++++ >> 1 file changed, 9 insertions(+) >> >> diff --git a/app/test-dma-perf/main.c b/app/test-dma-perf/main.c >> index 4249dcfd3d..b6aa5b8401 100644 >> --- a/app/test-dma-perf/main.c >> +++ b/app/test-dma-perf/main.c >> @@ -109,6 +109,7 @@ run_test_case(struct test_configure *case_cfg) >> static void >> run_test(uint32_t case_id, struct test_configure *case_cfg) >> { >> + uint32_t main_lcore = rte_get_main_lcore(); >> uint32_t nb_lcores = rte_lcore_count(); >> struct test_configure_entry *mem_size = &case_cfg->mem_size; >> struct test_configure_entry *buf_size = &case_cfg->buf_size; >> @@ -122,6 +123,14 @@ run_test(uint32_t case_id, struct test_configure >> *case_cfg) >> return; >> } >> >> + for (uint32_t i = 0; i < case_cfg->num_worker; i++) { Please define the variables in front of function impl. Thanks >> + if (case_cfg->dma_config[i].lcore_dma_map.lcore == main_lcore) { >> + printf("Case %u: worker %u cannot run on the EAL main >> lcore (%u).\n", >> + case_id, i, main_lcore); >> + return; >> + } >> + } >> + >> printf("Number of used lcores: %u.\n", nb_lcores); >> >> if (mem_size->incr != 0) >> -- >> 2.48.1 >> >

