summaryrefslogtreecommitdiffstats
path: root/cpukit/score/Makefile.am (unfollow)
Commit message (Collapse)AuthorFilesLines
2017-10-05posix: Implement self-contained POSIX mutexSebastian Huber1-0/+1
POSIX mutexes are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3112.
2017-10-05posix: Implement self-contained POSIX rwlocksSebastian Huber1-7/+1
POSIX rwlocks are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3115.
2017-10-05posix: Implement self-contained POSIX semaphoresSebastian Huber1-0/+1
For semaphore object pointer and object validation see POSIX_SEMAPHORE_VALIDATE_OBJECT(). Destruction or close of a busy semaphore returns an error status. The object is not flushed. POSIX semaphores are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3116.
2017-07-07score: Move processor affinity to Thread_ControlSebastian Huber1-1/+0
Update #3059.
2017-07-06score: Add processor mask to/from cpu_set_tSebastian Huber1-0/+1
Update #3059.
2017-06-29score: Add SMP EDF schedulerSebastian Huber1-0/+2
Update #3056.
2017-05-24build-system: Parallel build all subdirs.Chris Johns1-1/+1
2017-03-07score: Fix scheduler yield in SMP configurationsSebastian Huber1-0/+1
Check that no ask help request is registered during unblock and yield scheduler operations. There is no need to ask for help if a scheduled thread yields, since this is already covered by the pre-emption detection. Update #2556.
2017-01-13score: Add and use _Thread_Get_name()Sebastian Huber1-0/+1
Update #2858.
2016-11-23posix: Add self-contained pthread spinlockSebastian Huber1-8/+0
Turn pthread_spinlock_t into a self-contained object. On uni-processor configurations, interrupts are disabled in the lock/trylock operations and the previous interrupt status is restored in the corresponding unlock operations. On SMP configurations, a ticket lock is a acquired and released in addition. The self-contained pthread_spinlock_t object is defined by Newlib in <sys/_pthreadtypes.h>. typedef struct { struct _Ticket_lock_Control _lock; __uint32_t _interrupt_state; } pthread_spinlock_t; This implementation is simple and efficient. However, this test case of the Linux Test Project would fail due to call of printf() and sleep() during spin lock ownership: https://github.com/linux-test-project/ltp/blob/master/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/1-2.c There is only limited support for profiling on SMP configurations. Delete CORE spinlock implementation. Update #2674.
2016-11-23score: Delete obsolete scheduler debug aidSebastian Huber1-1/+0
2016-11-02score: Delete Resource HandlerSebastian Huber1-3/+0
Update #2556.
2016-11-02score: Delete unused functionsSebastian Huber1-1/+0
Delete _Scheduler_Thread_change_resource_root() and _Scheduler_Thread_change_help_state(). Update #2556.
2016-11-02score: Add _Thread_Scheduler_process_requests()Sebastian Huber1-0/+1
Update #2556.
2016-11-02rtems: Add rtems_task_iterate()Sebastian Huber1-0/+1
Update #2423.
2016-09-21score: Rework thread priority managementSebastian Huber1-1/+2
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.
2016-09-08score: Add scheduler node implementation headerSebastian Huber1-0/+1
Update #2556.
2016-09-08score: Move scheduler node to own header fileSebastian Huber1-0/+1
This makes it possible to add scheduler nodes to structures defined in <rtems/score/thread.h>. Update #2556.
2016-08-11score: Add _Thread_queue_Surrender()Sebastian Huber1-1/+0
Add _Thread_queue_Surrender() to unify the mutex surrender procedures which involve a thread queue operation.
2016-06-22score: Add thread priority to scheduler nodesSebastian Huber1-3/+0
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.
2016-06-22score: Move _RBTree_Find()Sebastian Huber1-1/+1
The _RBTree_Find() is no longer used in the score. Move it to sapi and make it rtems_rbtree_find(). Move corresponding types and support functions to sapi.
2016-06-22score: Introduce map priority scheduler operationSebastian Huber1-0/+1
Introduce map/unmap priority scheduler operations to map thread priority values from/to the user domain to/from the scheduler domain. Use the map priority operation to validate the thread priority. The EDF schedulers use this new operation to distinguish between normal priorities and priorities obtain through a job release. Update #2173. Update #2556.
2016-06-22score: Delete unused _Scheduler_Priority_compare()Sebastian Huber1-2/+0
By convention, thread priorities must be integers in RTEMS. Smaller values represent more important threads.
2016-06-09score: Add an SMP sequence lock implementationSebastian Huber1-0/+1
2016-05-30score: Rework CORE inherit priority mutexSebastian Huber1-2/+2
Provide dedicated seize and surrender methods for inherit priority mutexes. This eliminates CORE_mutex_Attributes.
2016-05-30score: Add libatomic supportSebastian Huber1-0/+1
Close #2695.
2016-05-26score: Add Status_Control for all APIsSebastian Huber1-0/+1
Unify the status codes of the Classic and POSIX API to use the new enum Status_Control. This eliminates the Thread_Control::Wait::timeout_code field and the timeout parameter of _Thread_queue_Enqueue_critical() and _MPCI_Send_request_packet(). It gets rid of the status code translation tables and instead uses simple bit operations to get the status for a particular API. This enables translation of status code constants at compile time. Add _Thread_Wait_get_status() to avoid direct access of thread internal data structures.
2016-05-20score: Delete unused _Objects_Get_isr_disable()Sebastian Huber1-1/+1
Delete now unused Objects_Locations.
2016-05-20score: Remove the Giant lockSebastian Huber1-5/+0
Update #2555.
2016-05-20score: Delete unused _Objects_Get()Sebastian Huber1-1/+1
Update #2555.
2016-05-19SMP: Add Mellor-Crummey and Scott (MCS) lockSebastian Huber1-0/+1
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
2016-05-19SMP: Move ticket lock to separate header fileSebastian Huber1-0/+1
2016-05-19SMP: Move lock stats to separate header fileSebastian Huber1-0/+1
2016-05-02score: Add dummy Strong APA schedulerSebastian Huber1-0/+2
Start with a copy of the Priority SMP scheduler implementation. Update #2510.
2016-05-02score: __RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__Sebastian Huber1-2/+1
Delete __RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__ as a preparation to restructure the CORE mutex variants and reduce the branch complexity.
2016-04-06score: Delete _Chain_Append()Sebastian Huber1-1/+1
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Get()Sebastian Huber1-1/+0
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Extract()Sebastian Huber1-1/+1
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Insert()Sebastian Huber1-1/+1
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Get_with_empty_check()Sebastian Huber1-1/+0
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Prepend_with_empty_check()Sebastian Huber1-1/+1
This function is not used in the score. Update #2555.
2016-04-06score: Delete _Chain_Append_with_empty_check()Sebastian Huber1-1/+1
This function is not used in the score. Update #2555.
2016-04-06score: _Thread_queue_Flush() parameter changesSebastian Huber1-1/+1
Change _Thread_queue_Flush() into a macro that invokes _Thread_queue_Do_flush() with the parameter set defined by RTEMS_MULTIPROCESSING. For multiprocessing configurations add the object identifier to avoid direct use of the thread wait information. Use mp_ prefix for multiprocessing related parameters. Rename Thread_queue_Flush_callout to Thread_queue_MP_callout since this type will be re-used later for other operations as well.
2016-04-06score: Delete Thread_Wait_information::idSebastian Huber1-0/+1
This field was only by the monitor in non-multiprocessing configurations. Add new field Thread_Wait_information::remote_id in multiprocessing configurations and use it for the remote procedure call thread queue. Add _Thread_Wait_get_id() to obtain the object identifier for debug and system information tools. Ensure the object layout via static asserts. Add test cases to sptests/spthreadq01.
2016-03-18score: Avoid Giant lock for CORE spinlockSebastian Huber1-1/+1
Use an ISR lock to protect the spinlock state. Remove empty attributes. Update #2555.
2016-03-17score: Fix CPU time used by executing threadsSebastian Huber1-0/+1
The CPU time used of a thread was previously maintained per-processor mostly during _Thread_Dispatch(). However, on SMP configurations the actual processor of a thread is difficult to figure out since thread dispatching is a highly asynchronous process (e.g. via inter-processor interrupts). Only the intended processor of a thread is known to the scheduler easily. Do the CPU usage accounting during thread heir updates in the context of the scheduler operations. Provide the function _Thread_Get_CPU_time_used() to get the CPU usage of a thread using proper locks to get a consistent value. Close #2627.
2016-03-14score: Add and use _Objects_Get_local()Sebastian Huber1-0/+1
This simplifies the handling with local-only objects. Update #2555.
2016-03-04score: Replace watchdog handler implementationSebastian Huber1-3/+2
Use a red-black tree instead of delta chains. Close #2344. Update #2554. Update #2555. Close #2606.
2016-03-04score: Add Processor_mask, etc.Sebastian Huber1-0/+1
2016-02-03Delete unused API extensionsSebastian Huber1-2/+1