Refuse to run DMA/CPU mem-copy cases when any worker is bound to the
EAL main lcore.

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++) {
+               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