test/rcu: use existing lcore API
authorDavid Marchand <david.marchand@redhat.com>
Wed, 22 May 2019 15:06:57 +0000 (17:06 +0200)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 29 May 2019 22:39:38 +0000 (00:39 +0200)
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 <david.marchand@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
app/test/test_rcu_qsbr.c
app/test/test_rcu_qsbr_perf.c

index ed6934a..92ab0c2 100644 (file)
@@ -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++)
index 16a43f8..6b1912c 100644 (file)
@@ -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);