summaryrefslogtreecommitdiffstats
path: root/testsuites/smptests/smpmrsp01 (follow)
Commit message (Collapse)AuthorAgeFilesLines
* rtems: Add rtems_scheduler_get_processor_maximum()Sebastian Huber2019-04-091-4/+4
| | | | | | | | | | | Add rtems_scheduler_get_processor_maximum() as a replacement for rtems_get_processor_count(). The rtems_get_processor_count() is a bit orphaned. Adopt it by the Scheduler Manager. The count is also misleading, since the processor set may have gaps and the actual count of online processors may be less than the value returned by rtems_get_processor_count(). Update #3732.
* rtems: Add rtems_scheduler_get_processor()Sebastian Huber2019-04-091-21/+21
| | | | | | | | | | | Add rtems_scheduler_get_processor() as a replacement for rtems_get_current_processor(). The rtems_get_current_processor() is a bit orphaned. Adopt it by the Scheduler Manager. This is in line with the glibc sched_getcpu() function. Deprecate rtems_get_current_processor(). Update #3731.
* testsuite/smptests: Merged nested Makefile.am files into one Makefile.amChris Johns2018-04-101-19/+0
| | | | | | This change is part of the testsuite Makefile.am reorganization. Update #3382
* config: Use new scheduler configuration definesSebastian Huber2018-03-121-38/+38
| | | | Update #3325.
* tests: Use simple console driverSebastian Huber2017-11-061-1/+1
| | | | | Update #3170. Update #3199.
* tests: Remove TEST_INITSebastian Huber2017-10-281-2/+0
| | | | | | | | The TEST_EXTERN is a used only by the system.h style tests and they use CONFIGURE_INIT appropriately. Update #3170. Update #3199.
* tests: Remove obsolete TESTS_USE_PRINTKSebastian Huber2017-10-281-1/+0
| | | | | Update #3170. Update #3199.
* testsuite: Use printk for all test output where possible.Chris Johns2017-10-231-0/+2
| | | | | | | | | | - Remove the printf support leaving the direct printk support configured with TESTS_USE_PRINTK and all other output goes via a buffered vsniprintf call to printk. - Control the test's single init for functions and global data with TEST_INIT and not CONFIGURE_INIT. They are now separate. Updates #3170.
* Rename CONFIGURE_SMP_MAXIMUM_PROCESSORSSebastian Huber2017-02-141-1/+1
| | | | | | | Rename CONFIGURE_SMP_MAXIMUM_PROCESSORS to CONFIGURE_MAXIMUM_PROCESSORS since the SMP part is superfluous. Update #2894.
* Remove CONFIGURE_SMP_APPLICATIONSebastian Huber2017-02-021-2/+0
| | | | | | Enable the SMP support if CONFIGURE_SMP_MAXIMUM_PROCESSORS > 1. Update #2893.
* score: Second part of new MrsP implementationSebastian Huber2016-11-021-5/+0
| | | | Update #2556.
* score: First part of new MrsP implementationSebastian Huber2016-11-021-55/+63
| | | | Update #2556.
* rtems: Fix rtems_task_set_scheduler() APISebastian Huber2016-07-011-17/+20
| | | | | | | | | | | 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.
* 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.
* smptests/smpmrsp01: Fix test contextSebastian Huber2016-03-031-1/+1
|
* 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.