[PATCH] app/dma_perf: skip case if worker maps to main lcore
fengchengwen
fengchengwen at huawei.com
Wed Jun 24 02:57:56 CEST 2026
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 <rchiluka at marvell.com>
>> ---
>> 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
>>
>
More information about the dev
mailing list