From cf407431dfd47f30acc3ad4a17cc44eff92ad98c Mon Sep 17 00:00:00 2001 From: David Marchand Date: Wed, 22 May 2019 17:06:57 +0200 Subject: [PATCH] test/rcu: use existing lcore API Prefer the existing apis rather than direct access lcore_config that is going to disappear. Fixes: b87089b0bb19 ("test/rcu: add API and functional tests") Cc: stable@dpdk.org Signed-off-by: David Marchand Reviewed-by: Maxime Coquelin Acked-by: Honnappa Nagarahalli --- app/test/test_rcu_qsbr.c | 22 ++++++++++------------ app/test/test_rcu_qsbr_perf.c | 12 ++++-------- 2 files changed, 14 insertions(+), 20 deletions(-) diff --git a/app/test/test_rcu_qsbr.c b/app/test/test_rcu_qsbr.c index ed6934a47d..92ab0c20aa 100644 --- a/app/test/test_rcu_qsbr.c +++ b/app/test/test_rcu_qsbr.c @@ -853,11 +853,10 @@ test_rcu_qsbr_sw_sv_3qs(void) hash_data[0][6] = NULL; writer_done = 1; - /* Wait until all readers have exited */ - rte_eal_mp_wait_lcore(); - /* Check return value from threads */ + + /* Wait and check return value from reader threads */ for (i = 0; i < 4; i++) - if (lcore_config[enabled_core_ids[i]].ret < 0) + if (rte_eal_wait_lcore(enabled_core_ids[i]) < 0) goto error; rte_hash_free(h[0]); rte_free(keys); @@ -913,17 +912,16 @@ test_rcu_qsbr_mw_mv_mqs(void) rte_eal_remote_launch(test_rcu_qsbr_writer, (void *)(uintptr_t)(i - (test_cores / 2)), enabled_core_ids[i]); - /* Wait for writers to complete */ + /* Wait and check return value from writer threads */ for (i = test_cores / 2; i < test_cores; i++) - rte_eal_wait_lcore(enabled_core_ids[i]); + if (rte_eal_wait_lcore(enabled_core_ids[i]) < 0) + goto error; writer_done = 1; - /* Wait for readers to complete */ - rte_eal_mp_wait_lcore(); - /* Check return value from threads */ - for (i = 0; i < test_cores; i++) - if (lcore_config[enabled_core_ids[i]].ret < 0) + /* Wait and check return value from reader threads */ + for (i = 0; i < test_cores / 2; i++) + if (rte_eal_wait_lcore(enabled_core_ids[i]) < 0) goto error; for (i = 0; i < num_cores / 4; i++) @@ -935,7 +933,7 @@ test_rcu_qsbr_mw_mv_mqs(void) error: writer_done = 1; - /* Wait until all readers have exited */ + /* Wait until all readers and writers have exited */ rte_eal_mp_wait_lcore(); for (i = 0; i < num_cores / 4; i++) diff --git a/app/test/test_rcu_qsbr_perf.c b/app/test/test_rcu_qsbr_perf.c index 16a43f8db6..6b1912c0c5 100644 --- a/app/test/test_rcu_qsbr_perf.c +++ b/app/test/test_rcu_qsbr_perf.c @@ -473,11 +473,9 @@ test_rcu_qsbr_sw_sv_1qs(void) writer_done = 1; - /* Wait until all readers have exited */ - rte_eal_mp_wait_lcore(); - /* Check return value from threads */ + /* Wait and check return value from reader threads */ for (i = 0; i < num_cores; i++) - if (lcore_config[enabled_core_ids[i]].ret < 0) + if (rte_eal_wait_lcore(enabled_core_ids[i]) < 0) goto error; rte_hash_free(h[0]); rte_free(keys); @@ -587,11 +585,9 @@ test_rcu_qsbr_sw_sv_1qs_non_blocking(void) rte_atomic64_add(&checks, i); writer_done = 1; - /* Wait until all readers have exited */ - rte_eal_mp_wait_lcore(); - /* Check return value from threads */ + /* Wait and check return value from reader threads */ for (i = 0; i < num_cores; i++) - if (lcore_config[enabled_core_ids[i]].ret < 0) + if (rte_eal_wait_lcore(enabled_core_ids[i]) < 0) goto error; rte_hash_free(h[0]); rte_free(keys);