[3/4] test/stack: propagate errors to main core

Message ID 20200805155721.19808-4-steven.lariau@arm.com (mailing list archive)
State Superseded, archived
Delegated to: David Marchand
Headers
Series test/stack: improve multithreaded test |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Steven Lariau Aug. 5, 2020, 3:57 p.m. UTC
  Use rte_eal_wait_lcore to wait and get the return value for all cores.
This is used to propagate any error to the main core.

Signed-off-by: Steven Lariau <steven.lariau@arm.com>
Reviewed-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
---
 app/test/test_stack.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
  

Comments

Eads, Gage Aug. 11, 2020, 8:13 p.m. UTC | #1
> -----Original Message-----
> From: Steven Lariau <steven.lariau@arm.com>
> Sent: Wednesday, August 5, 2020 10:57 AM
> To: Eads, Gage <gage.eads@intel.com>; Olivier Matz
> <olivier.matz@6wind.com>
> Cc: dev@dpdk.org; honnappa.nagarahalli@arm.com;
> dharmik.thakkar@arm.com; nd@arm.com; Steven Lariau
> <steven.lariau@arm.com>
> Subject: [PATCH 3/4] test/stack: propagate errors to main core
> 
> Use rte_eal_wait_lcore to wait and get the return value for all cores.
> This is used to propagate any error to the main core.
> 
> Signed-off-by: Steven Lariau <steven.lariau@arm.com>
> Reviewed-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
> Reviewed-by: Phil Yang <phil.yang@arm.com>
> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>

Acked-by: Gage Eads <gage.eads@intel.com>

Thanks,
Gage
  

Patch

diff --git a/app/test/test_stack.c b/app/test/test_stack.c
index c100d9faf..b9d6befd4 100644
--- a/app/test/test_stack.c
+++ b/app/test/test_stack.c
@@ -322,8 +322,10 @@  static int
 test_stack_multithreaded(uint32_t flags)
 {
 	struct test_args args;
+	unsigned int lcore_id;
 	struct rte_stack *s;
 	rte_atomic64_t size;
+	int result = 0;
 
 	if (rte_lcore_count() < 2) {
 		printf("Not enough cores for test_stack_multithreaded, expecting at least 2\n");
@@ -346,10 +348,14 @@  test_stack_multithreaded(uint32_t flags)
 
 	if (rte_eal_mp_remote_launch(stack_thread_push_pop, &args, CALL_MASTER))
 		rte_panic("Failed to launch tests\n");
-	rte_eal_mp_wait_lcore();
+
+	RTE_LCORE_FOREACH(lcore_id) {
+		if (rte_eal_wait_lcore(lcore_id) < 0)
+			result = -1;
+	}
 
 	rte_stack_free(s);
-	return 0;
+	return result;
 }
 
 static int