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
>>
> 

Reply via email to