summaryrefslogtreecommitdiffstats
path: root/cpukit/score (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* score: Split _Thread_Restart()Sebastian Huber2016-05-203-47/+95
| | | | | | | | | | | Split _Thread_Restart() into _Thread_Restart_self() and _Thread_Restart_other(). Move content of existing _Thread_Restart_self() into new _Thread_Restart_self(). Avoid Giant lock for thread restart. _Thread_Restart_self() is a no-return function and used by _Thread_Global_construction(). Update #2555. Update #2626.
* score: Add _Thread_Dispatch_disable_with_CPU()Sebastian Huber2016-05-201-5/+23
| | | | | Update #2555. Update #2626.
* score: Add _Thread_Clear_state_locked()Sebastian Huber2016-05-202-5/+21
| | | | | | | | This makes it possible to do thread state and thread life changes together under protection of the thread state lock. Update #2555. Update #2626.
* score: Add _Thread_Set_state_locked()Sebastian Huber2016-05-202-6/+22
| | | | | | | | This makes it possible to do thread state and thread life changes together under protection of the thread state lock. Update #2555. Update #2626.
* score: Add _Thread_Join() and _Thread_Cancel()Sebastian Huber2016-05-204-31/+70
| | | | | | | | Split _Thread_Close() into _Thread_Join() and _Thread_Cancel() to prepare for a re-use in pthread_join() and pthread_cancel(). Update #2555. Update #2626.
* score: Rework _Thread_Exit()Sebastian Huber2016-05-201-4/+16
| | | | | | | Rework _Thread_Exit() to use _Thread_Change_life_locked(). Update #2555. Update #2626.
* score: Add _Thread_Raise_real_priority()Sebastian Huber2016-05-201-14/+16
| | | | | Update #2555. Update #2626.
* score: Add Thread_Change_life()Sebastian Huber2016-05-206-57/+73
| | | | | | | | | Add _Thread_Change_life_locked() as a general function to alter the thread life state. Use it to implement _Thread_Set_life_protection() as a first step. Update #2555. Update #2626.
* score: Delete unused variableSebastian Huber2016-05-201-6/+3
| | | | | Update #2555. Update #2626.
* score: Avoid superfluous life protectionSebastian Huber2016-05-201-3/+0
| | | | | | | | Disable thread dispatching is enough to prevent deletion of the executing thread. There is no need for an additional life protection. Update #2555. Update #2626.
* score: Add _Thread_Exit()Sebastian Huber2016-05-202-4/+16
| | | | | | | | The goal is to make _Thread_Exit() a no-return function in follow up patches. Update #2555. Update #2626.
* score: Delete redundant thread life enumsSebastian Huber2016-05-202-6/+6
| | | | | | | This makes it easier to add more states in the future. Update #2555. Update #2626.
* SMP: Add Mellor-Crummey and Scott (MCS) lockSebastian Huber2016-05-193-0/+267
| | | | | | | | | | Added only for evaluation purposes. We have to compare the performance against the ticket lock on the interesting platforms via smptests/smplock01. The following GCC shortcoming affects the MCS lock: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66867
* SMP: Add and use lock statistics helperSebastian Huber2016-05-192-28/+54
|
* SMP: Move ticket lock to separate header fileSebastian Huber2016-05-194-160/+208
|
* SMP: Move lock stats to separate header fileSebastian Huber2016-05-195-333/+397
|
* score: Avoid Giant lock for scheduler set/getSebastian Huber2016-05-123-14/+62
| | | | Update #2555.
* posix: Avoid Giant lock for some pthread functionsSebastian Huber2016-05-121-0/+5
| | | | | | | | Avoid Giant lock for pthread_getattr_np(), pthread_setschedparam() and pthread_getschedparam(). Replace POSIX threads scheduler lock with thread state lock. Update #2555.
* score: Avoid Giant lock _Scheduler_Get_affinity()Sebastian Huber2016-05-121-3/+10
| | | | Update #2555.
* score: Avoid Giant lock _Scheduler_Set_affinity()Sebastian Huber2016-05-125-18/+36
| | | | Update #2555.
* score: Use thread state lock for current stateSebastian Huber2016-05-128-58/+117
| | | | | | | In addition protect scheduler of thread by thread state lock. Enables use of scheduler per-instance locks. Update #2555.
* rtems: Use thread state lock for signalsSebastian Huber2016-05-121-0/+1
|
* score: Introduce thread state lockSebastian Huber2016-05-126-93/+121
| | | | Update #2556.
* score: Add _Thread_queue_Is_lock_owner()Sebastian Huber2016-05-122-6/+71
| | | | Add _Thread_queue_Is_lock_owner() in case RTEMS_DEBUG is defined.
* score: Ensure matching lock acquire and releaseSebastian Huber2016-05-122-4/+16
| | | | | Ensure matching lock acquire and release for SMP locks if RTEMS_DEBUG is defined.
* score: Add _ISR_lock_Is_owner()Sebastian Huber2016-05-124-4/+90
|
* score: Fix CORE mutex initializationSebastian Huber2016-05-122-22/+3
| | | | | | | | | The priority inheritance and ceiling CORE mutexes wrongly used the FIFO queueing discipline. Delete misleading _CORE_mutex_Is_priority(). Bug introduced by 1e1a91ed11458ddbb27b94d0001d8f0fc2ef7a97. Add test sptests/spmutex01, since no existing uni-processor test covered the thread priority queueing discipline for CORE mutexes.
* Revert "score: Avoid use of uninitialized variable"Sebastian Huber2016-05-111-1/+0
| | | | | | Sorry, I should not fix warnings unmindfully. This reverts commit 35c8efc9501b5f6b1a4dfeaa4b1aa6a1d6dbf08e.
* score: Avoid use of uninitialized variableSebastian Huber2016-05-111-0/+1
| | | | | Properly set the needs_help to NULL in _Scheduler_SMP_Enqueue_ordered() in case the thread is inserted into the ready set.
* score: Avoid Giant lock for CBS schedulerSebastian Huber2016-05-064-77/+93
| | | | Update #2555.
* mpci: Avoid Giant lock in _MPCI_Process_response()Sebastian Huber2016-05-041-17/+15
| | | | | Update #2555. Update #2703.
* score: Simplify _Thread_Get_interrupt_disable()Sebastian Huber2016-05-042-6/+2
| | | | Remove the object location parameter.
* score: Add _Thread_MP_Is_remote()Sebastian Huber2016-05-043-21/+32
|
* score: Simplify _Thread_Get_objects_information()Sebastian Huber2016-05-041-8/+9
|
* score: Make _Objects_Information_table constSebastian Huber2016-05-042-15/+3
| | | | | The _Objects_Information_table is statically initialized. So, we can make it read-only.
* score: Simplify _Objects_Id_to_name()Sebastian Huber2016-05-041-6/+4
|
* score: Fix _Objects_Id_to_name()Sebastian Huber2016-05-041-12/+1
| | | | Avoid out-of-bounds array access in case the object class is invalid.
* rtems: Remove task variablesSebastian Huber2016-05-041-34/+0
| | | | | Update #2494. Update #2555.
* confdefs.h: Fix message queue size estimateSebastian Huber2016-05-041-17/+13
| | | | | Account for maximum message size alignment. Simplify _CORE_message_queue_Initialize().
* score: Optimize _Objects_Get_local()Sebastian Huber2016-05-023-6/+8
| | | | | Make the interrupt lock context the second parameter to avoid register moves.
* mpci: Fix _CORE_barrier_Surrender()Sebastian Huber2016-05-021-1/+1
| | | | Bug introduced by f27383a518836881b7b9b88e88d2e31d5b23d048.
* score: Add dummy Strong APA schedulerSebastian Huber2016-05-024-0/+547
| | | | | | Start with a copy of the Priority SMP scheduler implementation. Update #2510.
* score: __RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__Sebastian Huber2016-05-024-293/+159
| | | | | Delete __RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__ as a preparation to restructure the CORE mutex variants and reduce the branch complexity.
* score: Delete __RTEMS_STRICT_ORDER_MUTEX__Sebastian Huber2016-05-026-111/+0
| | | | | | Remove support for strict order mutexes. Close #2124.
* score: Avoid Giant lock for set time of daySebastian Huber2016-05-025-45/+77
| | | | | Update #2555. Update #2630.
* score: Streamline set time of day functionsSebastian Huber2016-05-023-18/+11
| | | | | | | Rename _TOD_Set() into _TOD_Set_with_timespec(). Rename _TOD_Set_with_timestamp() into _TOD_Set(). This is now in line with _TOD_Get() and _TOD_Get_as_timespec(). The timestamp is the canonical format.
* score: _Objects_Get_name_as_string()Sebastian Huber2016-05-021-39/+29
| | | | | | Avoid Giant lock in _Objects_Get_name_as_string(). Update #2555.
* posix: Simplify message queuesSebastian Huber2016-05-021-1/+0
| | | | | | | | | | | | The mq_open() function returns a descriptor to a POSIX message queue object identified by a name. This is similar to sem_open(). In contrast to the POSIX semaphore the POSIX message queues use a separate object for the descriptor. This extra object is superfluous, since the object identifier can be used directly for this purpose, just like for the semaphores. Update #2702. Update #2555.
* score: Move message notificationSebastian Huber2016-05-025-29/+35
| | | | | | | | Move message notification to end of critical section and delegate the message queue release to the notification handler. It may do more complex notification actions out of the critical section. Update #2555.
* score: _CORE_message_queue_Insert_message()Sebastian Huber2016-05-024-22/+24
| | | | Move common code into _CORE_message_queue_Insert_message().