[PATCH 05/27] score: Change _Scheduler_Try_to_schedule_node()

Sebastian Huber sebastian.huber at embedded-brains.de
Mon Nov 15 17:12:37 UTC 2021


Add the victim node as parameter instead of the idle thread.

Update #4531.
---
 cpukit/include/rtems/score/schedulerimpl.h    | 4 ++--
 cpukit/include/rtems/score/schedulersmpimpl.h | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/cpukit/include/rtems/score/schedulerimpl.h b/cpukit/include/rtems/score/schedulerimpl.h
index ec51b6d097..1e83f75891 100644
--- a/cpukit/include/rtems/score/schedulerimpl.h
+++ b/cpukit/include/rtems/score/schedulerimpl.h
@@ -969,7 +969,7 @@ RTEMS_INLINE_ROUTINE Scheduler_Try_to_schedule_action
 _Scheduler_Try_to_schedule_node(
   Scheduler_Context         *context,
   Scheduler_Node            *node,
-  const Thread_Control      *idle,
+  Scheduler_Node            *victim,
   Scheduler_Get_idle_thread  get_idle_thread
 )
 {
@@ -994,7 +994,7 @@ _Scheduler_Try_to_schedule_node(
     action = SCHEDULER_TRY_TO_SCHEDULE_DO_BLOCK;
   } else if ( node->sticky_level == 0 ) {
     action = SCHEDULER_TRY_TO_SCHEDULE_DO_BLOCK;
-  } else if ( idle != NULL ) {
+  } else if ( _Scheduler_Node_get_idle( victim ) != NULL ) {
     action = SCHEDULER_TRY_TO_SCHEDULE_DO_IDLE_EXCHANGE;
   } else {
     Thread_Control *idle;
diff --git a/cpukit/include/rtems/score/schedulersmpimpl.h b/cpukit/include/rtems/score/schedulersmpimpl.h
index dd0551972c..f4ee72696f 100644
--- a/cpukit/include/rtems/score/schedulersmpimpl.h
+++ b/cpukit/include/rtems/score/schedulersmpimpl.h
@@ -810,7 +810,7 @@ static inline void _Scheduler_SMP_Enqueue_to_scheduled(
   action = _Scheduler_Try_to_schedule_node(
     context,
     node,
-    _Scheduler_Node_get_idle( lowest_scheduled ),
+    lowest_scheduled,
     _Scheduler_SMP_Get_idle_thread
   );
 
@@ -987,7 +987,7 @@ static inline bool _Scheduler_SMP_Enqueue_scheduled(
     action = _Scheduler_Try_to_schedule_node(
       context,
       highest_ready,
-      _Scheduler_Node_get_idle( node ),
+      node,
       _Scheduler_SMP_Get_idle_thread
     );
 
@@ -1086,7 +1086,7 @@ static inline void _Scheduler_SMP_Schedule_highest_ready(
     action = _Scheduler_Try_to_schedule_node(
       context,
       highest_ready,
-      NULL,
+      victim,
       _Scheduler_SMP_Get_idle_thread
     );
 
@@ -1145,7 +1145,7 @@ static inline void _Scheduler_SMP_Preempt_and_schedule_highest_ready(
     action = _Scheduler_Try_to_schedule_node(
       context,
       highest_ready,
-      NULL,
+      victim,
       _Scheduler_SMP_Get_idle_thread
     );
 
-- 
2.26.2



More information about the devel mailing list