summaryrefslogtreecommitdiffstats
path: root/testsuites/smptests/smpmrsp01 (follow)
Commit message (Collapse)AuthorAgeFilesLines
* smptests/smpmrsp01: Reduce required CPU countSebastian Huber2015-06-031-8/+13
|
* score: Fix scheduler helping protocolSebastian Huber2015-05-112-250/+478
| | | | | | Account for priority changes of threads executing in a foreign partition. Exchange idle threads in case a victim node uses an idle thread and the new scheduled node needs an idle thread.
* smptests/smpmrsp01: Fix task delete race conditionSebastian Huber2015-01-141-2/+3
| | | | | | | | Do not supsend self while waiting for termination since the rtems_task_delete() may take place while the rtems_task_suspend() waits for the Giant lock preventing delivery of the inter-processor interrupt. The result is a suspended and terminated thread (this is a valid state, but leads in this case to a test failure).
* smptests/smpmrsp01: Update run indicator only onceSebastian Huber2015-01-091-1/+3
| | | | | On the Freescale T2080 the excessive concurrent write/read lead to a livelock condition.
* smp: Fix timeout for MrsP semaphoresSebastian Huber2014-12-182-32/+93
| | | | | | | | The previous timeout handling was flawed. In case a waiting thread helped out the owner could use the scheduler node indefinitely long. Update the resource tree in _MRSP_Timeout() to avoid this issue. Bug reported by Luca Bonato.
* smptests/smpmrsp01: Use busy waitsSebastian Huber2014-11-271-18/+20
| | | | | Use busy waits instead of sleeps to avoid unnecessary switches to the idle thread.
* smp: Fix scheduler helping protocolSebastian Huber2014-11-272-32/+206
| | | | | | | Ensure that scheduler nodes in the SCHEDULER_HELP_ACTIVE_OWNER or SCHEDULER_HELP_ACTIVE_RIVAL helping state are always SCHEDULER_SMP_NODE_READY or SCHEDULER_SMP_NODE_SCHEDULED to ensure the MrsP protocol properties.
* smp: Fix scheduler helping protocolLuca Bonato2014-11-242-0/+191
| | | | | | | | | | | | New test case for smptests/smpmrsp01. Fix _Scheduler_Block_node() in case the node is in the SCHEDULER_HELP_ACTIVE_RIVAL helping state. For example a rtems_task_suspend() on a task waiting for a MrsP semaphore. Fix _Scheduler_Unblock_node() in case the node is in the SCHEDULER_SMP_NODE_READY state. For example a rtems_task_resume() on a task owning or waiting for a MrsP semaphore.
* tests: Add documentationSebastian Huber2014-09-011-1/+13
|
* score: Fix scheduler helping implementationSebastian Huber2014-07-102-241/+255
| | | | | Do not extract the idle threads from the ready set so that there is always a thread available for comparison.
* smptests/smpmrsp01: Add and update test casesSebastian Huber2014-07-092-185/+720
|
* smptests/smpmrsp01: Fix scheduler idsChristian Mauderer2014-06-031-1/+9
|
* score: Use Resource Handler for MrsP semaphoresSebastian Huber2014-06-031-0/+288
| | | | | This enables proper resource dependency tracking and as a side-effect deadlock detection.
* score: Multiprocessor Resource Sharing ProtocolSebastian Huber2014-05-284-0/+879
Add basic support for the Multiprocessor Resource Sharing Protocol (MrsP). The Multiprocessor Resource Sharing Protocol (MrsP) is defined in A. Burns and A.J. Wellings, A Schedulability Compatible Multiprocessor Resource Sharing Protocol - MrsP, Proceedings of the 25th Euromicro Conference on Real-Time Systems (ECRTS 2013), July 2013. It is a generalization of the Priority Ceiling Protocol to SMP systems. Each MrsP semaphore uses a ceiling priority per scheduler instance. These ceiling priorities can be specified with rtems_semaphore_set_priority(). A task obtaining or owning a MrsP semaphore will execute with the ceiling priority for its scheduler instance as specified by the MrsP semaphore object. Tasks waiting to get ownership of a MrsP semaphore will not relinquish the processor voluntarily. In case the owner of a MrsP semaphore gets preempted it can ask all tasks waiting for this semaphore to help out and temporarily borrow the right to execute on one of their assigned processors. The help out feature is not implemented with this patch.