diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-02-02 16:24:05 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-02-03 10:17:38 +0100 |
commit | ca1e546e7772838b20d0792155e2c71514d6b5d3 (patch) | |
tree | a5af2d74d6fcefa8d36f0fa32debd886e63cca4b /cpukit/score/src/schedulerprioritysmp.c | |
parent | sparc: Fix volatile clobber (diff) | |
download | rtems-ca1e546e7772838b20d0792155e2c71514d6b5d3.tar.bz2 |
score: Improve scheduler helping protocol
Only register ask for help requests in the scheduler unblock and yield
operations. The actual ask for help operation is carried out during
_Thread_Do_dispatch() on a processor related to the thread. This yields
a better separation of scheduler instances. A thread of one scheduler
instance should not be forced to carry out too much work for threads on
other scheduler instances.
Update #2556.
Diffstat (limited to 'cpukit/score/src/schedulerprioritysmp.c')
-rw-r--r-- | cpukit/score/src/schedulerprioritysmp.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/cpukit/score/src/schedulerprioritysmp.c b/cpukit/score/src/schedulerprioritysmp.c index b4786ea872..5548ebf8e8 100644 --- a/cpukit/score/src/schedulerprioritysmp.c +++ b/cpukit/score/src/schedulerprioritysmp.c @@ -206,7 +206,7 @@ static bool _Scheduler_priority_SMP_Enqueue_scheduled_fifo( ); } -bool _Scheduler_priority_SMP_Unblock( +void _Scheduler_priority_SMP_Unblock( const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node @@ -214,7 +214,7 @@ bool _Scheduler_priority_SMP_Unblock( { Scheduler_Context *context = _Scheduler_Get_context( scheduler ); - return _Scheduler_SMP_Unblock( + _Scheduler_SMP_Unblock( context, thread, node, @@ -342,7 +342,7 @@ Thread_Control *_Scheduler_priority_SMP_Remove_processor( ); } -bool _Scheduler_priority_SMP_Yield( +void _Scheduler_priority_SMP_Yield( const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node @@ -350,7 +350,7 @@ bool _Scheduler_priority_SMP_Yield( { Scheduler_Context *context = _Scheduler_Get_context( scheduler ); - return _Scheduler_SMP_Yield( + _Scheduler_SMP_Yield( context, thread, node, |