summaryrefslogtreecommitdiffstats
path: root/cpukit/score/Makefile.am (follow)
Commit message (Collapse)AuthorAgeFilesLines
* posix: Implement self-contained POSIX mutexSebastian Huber2017-10-051-0/+1
| | | | | | | | POSIX mutexes are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3112.
* posix: Implement self-contained POSIX rwlocksSebastian Huber2017-10-051-7/+1
| | | | | | | | POSIX rwlocks are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3115.
* posix: Implement self-contained POSIX semaphoresSebastian Huber2017-10-051-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.
* score: Move processor affinity to Thread_ControlSebastian Huber2017-07-071-1/+0
| | | | Update #3059.
* score: Add processor mask to/from cpu_set_tSebastian Huber2017-07-061-0/+1
| | | | Update #3059.
* score: Add SMP EDF schedulerSebastian Huber2017-06-291-0/+2
| | | | Update #3056.
* build-system: Parallel build all subdirs.Chris Johns2017-05-241-1/+1
|
* score: Fix scheduler yield in SMP configurationsSebastian Huber2017-03-071-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.
* score: Add and use _Thread_Get_name()Sebastian Huber2017-01-131-0/+1
| | | | Update #2858.
* posix: Add self-contained pthread spinlockSebastian Huber2016-11-231-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.
* score: Delete obsolete scheduler debug aidSebastian Huber2016-11-231-1/+0
|
* score: Delete Resource HandlerSebastian Huber2016-11-021-3/+0
| | | | Update #2556.
* score: Delete unused functionsSebastian Huber2016-11-021-1/+0
| | | | | | | Delete _Scheduler_Thread_change_resource_root() and _Scheduler_Thread_change_help_state(). Update #2556.
* score: Add _Thread_Scheduler_process_requests()Sebastian Huber2016-11-021-0/+1
| | | | Update #2556.
* rtems: Add rtems_task_iterate()Sebastian Huber2016-11-021-0/+1
| | | | Update #2423.
* score: Rework thread priority managementSebastian Huber2016-09-211-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.
* score: Add scheduler node implementation headerSebastian Huber2016-09-081-0/+1
| | | | Update #2556.
* score: Move scheduler node to own header fileSebastian Huber2016-09-081-0/+1
| | | | | | | This makes it possible to add scheduler nodes to structures defined in <rtems/score/thread.h>. Update #2556.
* score: Add _Thread_queue_Surrender()Sebastian Huber2016-08-111-1/+0
| | | | | Add _Thread_queue_Surrender() to unify the mutex surrender procedures which involve a thread queue operation.
* score: Add thread priority to scheduler nodesSebastian Huber2016-06-221-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.
* score: Move _RBTree_Find()Sebastian Huber2016-06-221-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.
* score: Introduce map priority scheduler operationSebastian Huber2016-06-221-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.
* score: Delete unused _Scheduler_Priority_compare()Sebastian Huber2016-06-221-2/+0
| | | | | By convention, thread priorities must be integers in RTEMS. Smaller values represent more important threads.
* score: Add an SMP sequence lock implementationSebastian Huber2016-06-091-0/+1
|
* score: Rework CORE inherit priority mutexSebastian Huber2016-05-301-2/+2
| | | | | Provide dedicated seize and surrender methods for inherit priority mutexes. This eliminates CORE_mutex_Attributes.
* score: Add libatomic supportSebastian Huber2016-05-301-0/+1
| | | | Close #2695.
* score: Add Status_Control for all APIsSebastian Huber2016-05-261-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.
* score: Delete unused _Objects_Get_isr_disable()Sebastian Huber2016-05-201-1/+1
| | | | Delete now unused Objects_Locations.
* score: Remove the Giant lockSebastian Huber2016-05-201-5/+0
| | | | Update #2555.
* score: Delete unused _Objects_Get()Sebastian Huber2016-05-201-1/+1
| | | | Update #2555.
* SMP: Add Mellor-Crummey and Scott (MCS) lockSebastian Huber2016-05-191-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
* SMP: Move ticket lock to separate header fileSebastian Huber2016-05-191-0/+1
|
* SMP: Move lock stats to separate header fileSebastian Huber2016-05-191-0/+1
|
* score: Add dummy Strong APA schedulerSebastian Huber2016-05-021-0/+2
| | | | | | Start with a copy of the Priority SMP scheduler implementation. Update #2510.
* score: __RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__Sebastian Huber2016-05-021-2/+1
| | | | | Delete __RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__ as a preparation to restructure the CORE mutex variants and reduce the branch complexity.
* score: Delete _Chain_Append()Sebastian Huber2016-04-061-1/+1
| | | | | | This function is not used in the score. Update #2555.
* score: Delete _Chain_Get()Sebastian Huber2016-04-061-1/+0
| | | | | | This function is not used in the score. Update #2555.
* score: Delete _Chain_Extract()Sebastian Huber2016-04-061-1/+1
| | | | | | This function is not used in the score. Update #2555.
* score: Delete _Chain_Insert()Sebastian Huber2016-04-061-1/+1
| | | | | | This function is not used in the score. Update #2555.
* score: Delete _Chain_Get_with_empty_check()Sebastian Huber2016-04-061-1/+0
| | | | | | This function is not used in the score. Update #2555.
* score: Delete _Chain_Prepend_with_empty_check()Sebastian Huber2016-04-061-1/+1
| | | | | | This function is not used in the score. Update #2555.
* score: Delete _Chain_Append_with_empty_check()Sebastian Huber2016-04-061-1/+1
| | | | | | This function is not used in the score. Update #2555.
* score: _Thread_queue_Flush() parameter changesSebastian Huber2016-04-061-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.
* score: Delete Thread_Wait_information::idSebastian Huber2016-04-061-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.
* score: Avoid Giant lock for CORE spinlockSebastian Huber2016-03-181-1/+1
| | | | | | Use an ISR lock to protect the spinlock state. Remove empty attributes. Update #2555.
* score: Fix CPU time used by executing threadsSebastian Huber2016-03-171-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.
* score: Add and use _Objects_Get_local()Sebastian Huber2016-03-141-0/+1
| | | | | | This simplifies the handling with local-only objects. Update #2555.
* score: Replace watchdog handler implementationSebastian Huber2016-03-041-3/+2
| | | | | | | | | Use a red-black tree instead of delta chains. Close #2344. Update #2554. Update #2555. Close #2606.
* score: Add Processor_mask, etc.Sebastian Huber2016-03-041-0/+1
|
* Delete unused API extensionsSebastian Huber2016-02-031-2/+1
|