summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Allow interrupts during thread dispatchSebastian Huber2016-11-183-34/+2
| | | | | | | | | Use a processor-specific interrupt frame during context switches in case the executing thread is longer executes on the processor and the heir thread is about to start execution. During this period we must not use a thread stack for interrupt processing. Update #2809.
* score: Add Per_CPU_Control::Interrupt_frameSebastian Huber2016-11-181-1/+13
| | | | Update #2809.
* score: Add Per_CPU_Control::isr_dispatch_disableSebastian Huber2016-11-181-0/+6
| | | | Update #2751.
* score: Add and use _Thread_Dispatch_direct()Sebastian Huber2016-11-182-7/+17
| | | | | | | | | | This function is useful for operations which synchronously block, e.g. self restart, self deletion, yield, sleep. It helps to detect if these operations are called in the wrong context. Since the thread dispatch necessary indicator is not used, this is more robust in some SMP situations. Update #2751.
* rtems: Add scheduler processor add/removeSebastian Huber2016-11-106-2/+145
| | | | Update #2797.
* score: Add and use Thread_Control::is_idleSebastian Huber2016-11-091-0/+1
| | | | Update #2797.
* score: Rename _Scheduler_AssignmentsSebastian Huber2016-11-091-9/+35
| | | | | | | | Rename _Scheduler_Assignments into _Scheduler_Initial_assignments to make it clear that they may not reflect the run-time scheduler assignment. Update #2797.
* score: Clarify _Scheduler_SMP_Start_idle()Sebastian Huber2016-11-091-8/+12
|
* score: Add scheduler to per-CPU informationSebastian Huber2016-11-091-3/+7
| | | | | | | This makes it possible to adjust the scheduler of a processor at run-time. Update #2797.
* mpci: Use the first scheduler for MPCISebastian Huber2016-11-092-2/+2
| | | | Avoid use of processor index 0 which may have no scheduler assigned.
* score: Inline some SMP lock operations by defaultSebastian Huber2016-11-091-0/+4
| | | | | | | | | The SMP ticket lock release turned out to be suitable for inlining, e.g. a hand full of instructions, no branches. The changes in the screen files do not reflect the changes due to this commit. However, they are now up to date. Obtained on a T4240 running at 1.5GHz using GCC 7.0.0 20161108..
* Provide kernel space header filesSebastian Huber2016-11-081-0/+1
| | | | | These kernel space header files must be provided for Newlib 172e2050d95b41861db858dd9bc43a3fb4a28987.
* score: Add optional _CPU_Get_thread_executing()Sebastian Huber2016-11-071-1/+2
|
* score: Optimize self-contained mutexesSebastian Huber2016-11-041-32/+67
|
* score: Use non-inline thread queue lock opsSebastian Huber2016-11-041-0/+64
| | | | | | This reduces the code size and helps to reduce the amount of testing. Hot paths can use the _Thread_queue_Queue_acquire_critical() and _Thread_queue_Queue_release_critical() functions which are still inline.
* score: Default to non-inline SMP lock opsSebastian Huber2016-11-041-36/+7
| | | | | Use non-inline SMP lock acquire and release operations by default. Provide inline variants for the hot spots, e.g. mutex acquire/release.
* score: Conditionally enable thread resource countSebastian Huber2016-11-032-0/+4
| | | | | Maintain the thread resource count only in debug configurations. This is a performance optimization for non-debug configurations.
* score: Introduce thread resource count methodsSebastian Huber2016-11-032-8/+8
| | | | | This makes it easier to conditionally enable/disable the thread resource count usage.
* score: Simplify yield and unblock scheduler opsSebastian Huber2016-11-0211-79/+54
| | | | Update #2556.
* score: Introduce Thread_Scheduler_control::homeSebastian Huber2016-11-026-7/+6
| | | | | | | | Replace Thread_Scheduler_control::control and Thread_Scheduler_control::own_control with new Thread_Scheduler_control::home. Update #2556.
* score: Delete Thread_Scheduler_control::own_nodeSebastian Huber2016-11-026-18/+18
| | | | Update #2556.
* score: Delete Thread_Scheduler_control::nodeSebastian Huber2016-11-022-2/+1
| | | | Update #2556.
* score: Delete Resource HandlerSebastian Huber2016-11-021-104/+0
| | | | Update #2556.
* score: Second part of new MrsP implementationSebastian Huber2016-11-021-8/+0
| | | | Update #2556.
* score: Delete unused scheduler ask for help X opSebastian Huber2016-11-025-81/+0
|
* score: Simplify update priority scheduler opSebastian Huber2016-11-027-28/+16
| | | | Remove unused return status.
* score: Delete _Scheduler_Ask_for_help_if_necessarySebastian Huber2016-11-021-2/+0
| | | | | | Delete Thread_Control::Resource_node. Update #2556.
* score: Delete unused functionsSebastian Huber2016-11-021-80/+0
| | | | | | | Delete _Scheduler_Thread_change_resource_root() and _Scheduler_Thread_change_help_state(). Update #2556.
* score: First part of new MrsP implementationSebastian Huber2016-11-022-23/+145
| | | | Update #2556.
* score: Use scheduler instance specific locksSebastian Huber2016-11-021-4/+12
| | | | Update #2556.
* score: Add new SMP scheduler helping protocolSebastian Huber2016-11-029-16/+451
| | | | Update #2556.
* score: Add _Thread_Scheduler_process_requests()Sebastian Huber2016-11-021-0/+84
| | | | Update #2556.
* score: Add scheduler node requestsSebastian Huber2016-11-021-0/+4
| | | | | | | Add the ability to add/remove scheduler nodes to/from the set of scheduler nodes available to the schedulers for a particular thread. Update #2556.
* score: Add thread scheduler lockSebastian Huber2016-11-022-0/+2
| | | | Update #2556.
* score: Add _Thread_Scheduler_remove_wait_node()Sebastian Huber2016-11-022-4/+8
| | | | Update #2556.
* score: Add _Thread_Scheduler_add_wait_node()Sebastian Huber2016-11-022-8/+2
| | | | Update #2556.
* score: Add _Scheduler_Node_get_scheduler()Sebastian Huber2016-11-021-1/+1
| | | | Update #2556.
* score: Pass scheduler node to unblock operationSebastian Huber2016-11-028-26/+40
| | | | | | Changed for consistency with other scheduler operations. Update #2556.
* score: Pass scheduler node to block operationSebastian Huber2016-11-028-9/+23
| | | | | | Changed for consistency with other scheduler operations. Update #2556.
* score: Pass scheduler node to yield operationSebastian Huber2016-11-026-12/+26
| | | | | | Changed for consistency with other scheduler operations. Update #2556.
* score: Pass scheduler node to update priority opSebastian Huber2016-11-027-25/+34
| | | | | | | 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-026-11/+11
| | | | | | | | 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.
* rtems: Add rtems_task_iterate()Sebastian Huber2016-11-022-27/+78
| | | | Update #2423.
* score: Simplify check for migrationsSebastian Huber2016-10-121-20/+4
|
* score: Enhance _SMP_barrier_Wait()Sebastian Huber2016-10-111-1/+7
| | | | | Indicate which processor released the barrier. Similar to pthread_barrier_wait().
* score: Unify CORE mutex seize/surrenderSebastian Huber2016-09-272-0/+2
| | | | | | Use the Thread_Control::resource_count for the no protocol mutexes. Merge the no protocol and priority inherit CORE mutex seize/surrender operations.
* score: Simplify ISR lock nameSebastian Huber2016-09-271-4/+1
|
* score: Simplify CORE mutex seizeSebastian Huber2016-09-271-59/+0
| | | | | | Rename _CORE_mutex_Seize_no_protocol_slow() in _CORE_mutex_Seize_slow(). Remove previous _CORE_mutex_Seize_slow() since the protocol handling is now done in the thread queue operations.
* score: Fix warningSebastian Huber2016-09-271-0/+2
|
* score: Fix C/C++ compatibility issueSebastian Huber2016-09-231-4/+6
| | | | | | | Only use CPU_Per_CPU_control if it contains at least one filed. In GNU C empty structures have a size of zero. In C++ structures have a non-zero size. In case CPU_PER_CPU_CONTROL_SIZE is defined to zero, then this structure is not used anymore.