smpfatal08 fails on systems where all cpus are started by the boot-loader and 
thereby clobber the test output. This patch stops the secondary cpus with a 
call to _CPU_Thread_Idle_body(). Tested on RISC-V and SPARC.

From 4429fd6b391e3feebd72a0e7d403cc4745e35a3a Mon Sep 17 00:00:00 2001
From: Jiri Gaisler <j...@gaisler.se>
Date: Sun, 11 Apr 2021 21:15:13 +0200
Subject: [PATCH] smpfatal08: block secondary processors

	* On some SMP platforms, all cpus are started by the
	  boot-loader. We need to block the secondary cpus or they
	  will clobber the test output.
---
 testsuites/smptests/smpfatal08/init.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/testsuites/smptests/smpfatal08/init.c b/testsuites/smptests/smpfatal08/init.c
index 47ea91b29d..bfdfda9437 100644
--- a/testsuites/smptests/smpfatal08/init.c
+++ b/testsuites/smptests/smpfatal08/init.c
@@ -37,7 +37,8 @@ const char rtems_test_name[] = "SMPFATAL 8";
 void bsp_start_on_secondary_processor(struct Per_CPU_Control *cpu_self)
 {
   /* Provided to avoid multiple definitions of the CPU SMP support functions */
-  (void) cpu_self;
+  /* Block secondary cpus if they are running to avoid clobbering output */
+  (void) _CPU_Thread_Idle_body( 0 );
 }
 
 #if QORIQ_THREAD_COUNT > 1
-- 
2.25.1

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to