summaryrefslogtreecommitdiffstats
path: root/testsuites/smptests (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Rename CONFIGURE_SMP_MAXIMUM_PROCESSORSSebastian Huber2017-02-1446-54/+54
| | | | | | | Rename CONFIGURE_SMP_MAXIMUM_PROCESSORS to CONFIGURE_MAXIMUM_PROCESSORS since the SMP part is superfluous. Update #2894.
* smptests: Fix warningsSebastian Huber2017-02-034-28/+27
|
* score: Improve scheduler helping protocolSebastian Huber2017-02-031-20/+6
| | | | | | | | | | | 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.
* Remove CONFIGURE_SMP_APPLICATIONSebastian Huber2017-02-0247-89/+2
| | | | | | Enable the SMP support if CONFIGURE_SMP_MAXIMUM_PROCESSORS > 1. Update #2893.
* smptests/smpsignal01: Check signal ISR levelSebastian Huber2017-01-242-7/+68
| | | | Close #2751.
* Remove obsolete __RTEMS_HAVE_SYS_CPUSET_H__Joel Sherrill2017-01-112-16/+0
|
* Rename is_internal to always_set_to_falseSebastian Huber2016-12-127-14/+14
| | | | Update #2825.
* smplock01: Fix plot scriptsSebastian Huber2016-12-072-2/+4
|
* smplock01: Fix fairness plot scriptSebastian Huber2016-12-051-1/+1
|
* smpthreadlife01: Fix due to robust thread dispatchSebastian Huber2016-12-021-13/+19
| | | | Update #2811.
* score: Initialize thread queue context earlySebastian Huber2016-12-021-1/+2
| | | | | | | | Initialize thread queue context early preferably outside the critical section. Remove implicit _Thread_queue_Context_initialize() from _Thread_Wait_acquire().
* score: Fix thread queue context initializationSebastian Huber2016-11-281-1/+1
| | | | | Initialize the thread queue context with invalid data in debug configurations to catch missing set up steps.
* smptests/smpfatal03: Use timer to provoke errorSebastian Huber2016-11-231-31/+21
| | | | | | Avoid use of internal _Thread_Dispatch_disable() function. Update #2825.
* score: Robust thread dispatchSebastian Huber2016-11-236-0/+105
| | | | | | | | | | | | On SMP configurations, it is a fatal error to call blocking operating system with interrupts disabled, since this prevents delivery of inter-processor interrupts. This could lead to executing threads which are not allowed to execute resulting in undefined behaviour. The ARM Cortex-M port has a similar problem, since the interrupt state is not a part of the thread context. Update #2811.
* smptests/smplock01: Test TAS and TTAS locksSebastian Huber2016-11-234-1560/+2508
| | | | Cache align locks in the context.
* smptests/smpscheduler02: Fix task initializationSebastian Huber2016-11-231-2/+2
| | | | Set scheduler before the task start.
* score: Restrict task interrupt level to 0 on SMPSebastian Huber2016-11-181-1/+17
| | | | Update #2811.
* powerpc: Add _CPU_Get_current_per_CPU_control()Sebastian Huber2016-11-101-460/+460
| | | | | | | | Add _CPU_Get_current_per_CPU_control() on SMP configurations. Use SPRG0 for the current per-CPU control. This reduces the code size by three instructions and is slightly faster. Update #2805.
* rtems: Add scheduler processor add/removeSebastian Huber2016-11-107-0/+467
| | | | Update #2797.
* score: Simplify _Scheduler_Get_by_id()Sebastian Huber2016-11-091-4/+7
| | | | | | | | | | Avoid dead code in non-SMP configurations. Return scheduler identifier independent of the current processor count of the scheduler via rtems_scheduler_ident(), since this value may change during run-time. Check the processor count in _Scheduler_Set() under scheduler lock protection. Update #2797.
* score: Inline some SMP lock operations by defaultSebastian Huber2016-11-091-468/+468
| | | | | | | | | 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..
* score: Relax _Scheduler_Set() restrictionsSebastian Huber2016-11-031-18/+42
| | | | | | No longer unconditionally prevent scheduler changes if the thread owns resources. Prevent a scheduler change only in case other threads wait for the resource.
* smptests/smplock01: Update screen fileSebastian Huber2016-11-032-1555/+1555
|
* score: Simplify yield and unblock scheduler opsSebastian Huber2016-11-021-22/+18
| | | | Update #2556.
* score: Introduce Thread_Scheduler_control::homeSebastian Huber2016-11-021-4/+4
| | | | | | | | Replace Thread_Scheduler_control::control and Thread_Scheduler_control::own_control with new Thread_Scheduler_control::home. Update #2556.
* score: Second part of new MrsP implementationSebastian Huber2016-11-021-5/+0
| | | | Update #2556.
* score: Simplify update priority scheduler opSebastian Huber2016-11-021-11/+5
| | | | Remove unused return status.
* score: First part of new MrsP implementationSebastian Huber2016-11-027-55/+206
| | | | Update #2556.
* score: Yield support for new SMP helping protocolSebastian Huber2016-11-021-0/+52
| | | | Update #2556.
* score: Add new SMP scheduler helping protocolSebastian Huber2016-11-021-2/+191
| | | | Update #2556.
* score: Pass scheduler node to unblock operationSebastian Huber2016-11-021-3/+10
| | | | | | Changed for consistency with other scheduler operations. Update #2556.
* score: Pass scheduler node to block operationSebastian Huber2016-11-021-3/+6
| | | | | | Changed for consistency with other scheduler operations. Update #2556.
* score: Pass scheduler node to yield operationSebastian Huber2016-11-021-3/+10
| | | | | | Changed for consistency with other scheduler operations. Update #2556.
* score: Pass scheduler node to update priority opSebastian Huber2016-11-021-12/+22
| | | | | | | This enables to call this scheduler operation for all scheduler nodes available to a thread. Update #2556.
* smptests/smplock01: Use test supportSebastian Huber2016-10-313-533/+2189
| | | | Convert output to XML.
* smpschedaffinity05: Fix configurationSebastian Huber2016-10-121-0/+2
|
* score: Scheduler node awareness for thread queuesSebastian Huber2016-09-211-24/+349
| | | | | | | | Maintain the priority of a thread for each scheduler instance via the thread queue enqueue, extract, priority actions and surrender operations. This replaces the primitive priority boosting. Update #2556.
* rtems: Add rtems_task_get_priority()Sebastian Huber2016-09-211-0/+16
| | | | | Update #2556. Update #2784.
* smptests/smpmutex01: Use test case functionsSebastian Huber2016-09-211-2/+24
|
* score: Rework thread priority managementSebastian Huber2016-09-212-21/+25
| | | | | | | | | | | | | | | | | | | | | | | | | 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: Introduce _Thread_Get_priority()Sebastian Huber2016-09-081-1/+1
| | | | Avoid direct access to thread internal data fields.
* libmisc/capture: Remove the reserved _t in the types.Chris Johns2016-09-012-15/+15
|
* libmisc/capture: Fix the capture engine on SMP.Chris Johns2016-09-011-77/+95
| | | | | | | | | | | | | | | | | | | | | | | This patches some issues with the capture engine: 1. Check is the engine is open in ctrace commands. 2. Check all record open and appends for overflow. 3. Fix the record open to take the size of user data and not the record header. 4. Use packed structs for data being written to the per cpu buffers. 5. Remove direct struct access to the capture buffers to avoid misaligned accesses. 6. Add support to extract records, no struct access to the capture buffers. 7. Update ctrace to extract records from the capture buffers. 8. Add support to ctrace to always print the task name if it has one. 9. Add support to manage names or the lack of a name. 10. Range of minor fixes. 11. Fix a long standing bug in ctset's handling of args. Closes #2780.
* smptests/smpmutex02: New testSebastian Huber2016-07-256-0/+1052
| | | | Update #2765.
* score: Postpone SMP shutdown in _Terminate()Sebastian Huber2016-07-061-21/+17
| | | | | This enables fatal extensions to continue program execution after some fatal errors.
* rtems: Fix rtems_task_set_scheduler() APISebastian Huber2016-07-018-36/+62
| | | | | | | | | | | Task priorities are only valid within a scheduler instance. The rtems_task_set_scheduler() directive moves a task from one scheduler instance to another using the current priority of the thread. However, the current task priority of the source scheduler instance is undefined in the target scheduler instance. Add a third parameter to specify the priority. Close #2749.
* smptests/smpstrongapa01: SimplifySebastian Huber2016-06-301-5/+1
|
* smptests/smpstrongapa01: Add test casesSebastian Huber2016-06-301-3/+300
|
* score: Change Priority_Control to 64-bitSebastian Huber2016-06-241-1/+1
| | | | | | | | A 32-bit Priority_Control limits the uptime to 49 days with a 1ms clock tick in case the EDF scheduler is used. Increase it to 64-bit to enable proper operation of the EDF scheduler, Close 2173.
* smptests/smpmrsp01: Fix due to API changesSebastian Huber2016-06-231-168/+60
| | | | | | | Commit 77ff5599e0d8e6d91190a379be21a332f83252b0 introduced a change in the rtems_semaphore_create() behaviour for MrsP semaphores. The ceiling priorities for all schedulers except the scheduler of the executing thread are initialized to zero.