summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-10-19 11:21:49 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-11-23 11:00:28 +0100
commitf0f60a1ec3758c9fd2a92f854fef326d081a9bcc (patch)
treedc901f67b0c7d48a595f362ccb1f71acfe26c354
parentscore: Not set CPU in _Scheduler_Use_idle_thread() (diff)
downloadrtems-f0f60a1ec3758c9fd2a92f854fef326d081a9bcc.tar.bz2
score: Change _Scheduler_Try_to_schedule_node()
Add the victim node as parameter instead of the idle thread. Update #4531.
-rw-r--r--cpukit/include/rtems/score/schedulerimpl.h4
-rw-r--r--cpukit/include/rtems/score/schedulersmpimpl.h8
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
);