[PATCH 01/10] rtems: Fix rtems_task_create() scheduler selection

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Nov 8 08:59:35 UTC 2016


Use the home scheduler of the executing thread for the created thread.
This is in line with pthread_create().  Using the current processor may
pick up an unexpected scheduler in case of a temporary migration, e.g.
due to locking protocols.
---
 cpukit/rtems/src/taskcreate.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cpukit/rtems/src/taskcreate.c b/cpukit/rtems/src/taskcreate.c
index e231d4a..2695382 100644
--- a/cpukit/rtems/src/taskcreate.c
+++ b/cpukit/rtems/src/taskcreate.c
@@ -90,7 +90,7 @@ rtems_status_code rtems_task_create(
     }
   }
 
-  scheduler = _Scheduler_Get_by_CPU_index( _SMP_Get_current_processor() );
+  scheduler = _Thread_Scheduler_get_home( _Thread_Get_executing() );
 
   priority = _RTEMS_Priority_To_core( scheduler, initial_priority, &valid );
   if ( !valid ) {
-- 
1.8.4.5




More information about the devel mailing list