[PATCH 2/2] score: Optimize default idle task stack allocator
Sebastian Huber
sebastian.huber at embedded-brains.de
Tue Oct 19 14:44:39 UTC 2021
Update #4524.
---
cpukit/score/src/stackallocatorforidle.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/cpukit/score/src/stackallocatorforidle.c b/cpukit/score/src/stackallocatorforidle.c
index 7c4fd10c7d..8a3b1e5d25 100644
--- a/cpukit/score/src/stackallocatorforidle.c
+++ b/cpukit/score/src/stackallocatorforidle.c
@@ -31,6 +31,7 @@
#include <rtems/score/stack.h>
#include <rtems/score/thread.h>
+#include <rtems/score/assert.h>
/**
* @brief Default stack allocator allocate for idle handler.
@@ -41,18 +42,23 @@
* The default allocator for IDLE thread stacks gets the memory from a
* statically allocated area provided via confdefs.h.
*
- * @param cpu Index of the CPU for the IDLE thread using this stack
+ * @param cpu_index Index of the CPU for the IDLE thread using this stack
* @param stack_size The size of the stack area to allocate in bytes.
*
* @retval NULL Not enough memory (never returned).
* @retval other Pointer to begin of stack area.
*/
static void *_Stack_Allocator_allocate_for_idle_default(
- uint32_t cpu,
+ uint32_t cpu_index,
size_t stack_size
)
{
- return &_Thread_Idle_stacks[ cpu * stack_size ];
+#if defined(RTMS_SMP)
+ return &_Thread_Idle_stacks[ cpu_index * stack_size ];
+#else
+ _Assert( cpu_index == 0 );
+ return &_Thread_Idle_stacks[ 0 ];
+#endif
}
const Stack_Allocator_allocate_for_idle _Stack_Allocator_allocate_for_idle =
--
2.31.1
More information about the devel
mailing list