summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src/schedulerstrongapa.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Add simple affinity support to EDF SMPSebastian Huber2017-07-101-1/+2
| | | | Update #3059.
* score: Add red-black tree node to Scheduler_NodeSebastian Huber2017-06-291-7/+7
| | | | | | | In SMP configurations, add a red-black tree node to Scheduler_Node to enable an EDF scheduler implementation. Update #3056.
* score: Improve scheduler helping protocolSebastian Huber2017-02-031-4/+4
| | | | | | | | | | | 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.
* rtems: Add scheduler processor add/removeSebastian Huber2016-11-101-0/+38
| | | | Update #2797.
* score: Simplify yield and unblock scheduler opsSebastian Huber2016-11-021-16/+10
| | | | Update #2556.
* score: Delete unused scheduler ask for help X opSebastian Huber2016-11-021-16/+0
|
* score: Simplify update priority scheduler opSebastian Huber2016-11-021-2/+2
| | | | Remove unused return status.
* score: Add new SMP scheduler helping protocolSebastian Huber2016-11-021-1/+69
| | | | Update #2556.
* score: Pass scheduler node to unblock operationSebastian Huber2016-11-021-1/+3
| | | | | | Changed for consistency with other scheduler operations. Update #2556.
* score: Pass scheduler node to block operationSebastian Huber2016-11-021-1/+3
| | | | | | Changed for consistency with other scheduler operations. Update #2556.
* score: Pass scheduler node to yield operationSebastian Huber2016-11-021-1/+3
| | | | | | Changed for consistency with other scheduler operations. Update #2556.
* score: Pass scheduler node to update priority opSebastian Huber2016-11-021-1/+3
| | | | | | | This enables to call this scheduler operation for all scheduler nodes available to a thread. Update #2556.
* score: Rename scheduler ask for help stuffSebastian Huber2016-11-021-2/+2
| | | | | | | | Rename the scheduler ask for help stuff since this will be replaced step by step with a second generation of the scheduler helping protocol. Keep the old one for now in parallel to reduce the patch set sizes. Update #2556.
* score: Rework thread priority managementSebastian Huber2016-09-211-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | Add priority nodes which contribute to the overall thread priority. The actual priority of a thread is now an aggregation of priority nodes. The thread priority aggregation for the home scheduler instance of a thread consists of at least one priority node, which is normally the real priority of the thread. The locking protocols (e.g. priority ceiling and priority inheritance), rate-monotonic period objects and the POSIX sporadic server add, change and remove priority nodes. A thread changes its priority now immediately, e.g. priority changes are not deferred until the thread releases its last resource. Replace the _Thread_Change_priority() function with * _Thread_Priority_perform_actions(), * _Thread_Priority_add(), * _Thread_Priority_remove(), * _Thread_Priority_change(), and * _Thread_Priority_update(). Update #2412. Update #2556.
* score: Change scheduler node init and destroySebastian Huber2016-07-011-7/+6
| | | | | | Provide the scheduler node to initialize or destroy to the corresponding operations. This makes it possible to have more than one scheduler node per thread.
* score: Strong APA scheduler processor allocationSebastian Huber2016-06-301-3/+3
| | | | | Use _Scheduler_SMP_Allocate_processor_exact() to prevent unexpected migrations.
* score: Add thread priority to scheduler nodesSebastian Huber2016-06-221-21/+21
| | | | | | | | | | | | | | | | | | The thread priority is manifest in two independent areas. One area is the user visible thread priority along with a potential thread queue. The other is the scheduler. Currently, a thread priority update via _Thread_Change_priority() first updates the user visble thread priority and the thread queue, then the scheduler is notified if necessary. The priority is passed to the scheduler via a local variable. A generation counter ensures that the scheduler discards out-of-date priorities. This use of a local variable ties the update in these two areas close together. For later enhancements and the OMIP locking protocol implementation we need more flexibility. Add a thread priority information block to Scheduler_Node and synchronize priority value updates via a sequence lock on SMP configurations. Update #2556.
* score: _Scheduler_priority_Ready_queue_initializeSebastian Huber2016-06-141-1/+4
| | | | | Use priority maximum of scheduler instance. This avoids a potential memory corruption on SMP configurations.
* score: Add dummy Strong APA schedulerSebastian Huber2016-05-021-0/+396
Start with a copy of the Priority SMP scheduler implementation. Update #2510.