summaryrefslogtreecommitdiffstats
path: root/testsuites/smptests/Makefile.am (follow)
Commit message (Collapse)AuthorAgeFilesLines
* build: Remove old build systemSebastian Huber2021-09-211-673/+0
| | | | | Close #3250. Close #4081.
* tests: Remove superfluous SMPTESTS defineSebastian Huber2019-11-121-7/+7
| | | | Update #3818.
* score: Use processor mask in _SMP_Multicast_actionSebastian Huber2019-04-121-0/+11
| | | | Processor_mask is the internal data type to deal with processor sets.
* build: Do not install test programsSebastian Huber2019-01-301-3/+1
|
* score: Fix per-CPU data allocationSebastian Huber2018-12-181-0/+11
| | | | | | | | | | | Allocate the per-CPU data for secondary processors directly from the heap areas before heap initialization and not via _Workspace_Allocate_aligned(). This avoids dependency on the workspace allocator. It fixes also a problem on some platforms (e.g. QorIQ) where at this early point in the system initialization the top of the RAM is used by low-level startup code on secondary processors (boot pages). Update #3507.
* posix: Enable more smptests tests by defaultSebastian Huber2018-10-291-6/+0
| | | | Update #2514.
* build: Remove local.amSebastian Huber2018-10-101-1/+0
|
* score: Add thread pin/unpin supportSebastian Huber2018-09-101-0/+11
| | | | | | | | | Add support to temporarily pin a thread to its current processor. This may be used to access per-processor data structures in critical sections with enabled thread dispatching, e.g. a pinned thread is allowed to block. Update #3508.
* score: Fix _Scheduler_EDF_SMP_Set_affinity()Sebastian Huber2018-07-181-0/+11
| | | | | | Commit 8744498752ad4f0eaf9fb5640c6a0e0f2dc92fda broke the _Scheduler_EDF_SMP_Set_affinity() implementation. We must test the overall affinity against the online processors.
* testsuite/smptests: Merged nested Makefile.am files into one Makefile.amChris Johns2018-04-101-56/+631
| | | | | | This change is part of the testsuite Makefile.am reorganization. Update #3382
* smptests/smpopenmp01: New testSebastian Huber2018-02-021-0/+1
|
* smptests: Remove duplicate Makefile targetsSebastian Huber2017-10-251-2/+0
| | | | Close #3187.
* score: Add simple affinity support to EDF SMPSebastian Huber2017-07-101-0/+2
| | | | Update #3059.
* smptests/smpschededf01: New testSebastian Huber2017-06-291-0/+1
| | | | Update #3056.
* score: Add SMP EDF schedulerSebastian Huber2017-06-291-0/+1
| | | | Update #3056.
* smptests: Split smpscheduler03Sebastian Huber2017-06-291-0/+2
| | | | | | Split smpscheduler03 to run the tests with only one processor. Update #3056.
* testsuite: Add a common test configuration. Fix configure.ac and Makefile.am ↵Chris Johns2017-04-041-49/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | errors. - Add a top level test configuration file for test states that are common to all BSPs. This saves adding a test configuration (tcfg) file for every BSP. - Add the test states 'user-input' and 'benchmark'. This lets 'rtems-test' stop the test rather than waiting for a timeout or letting a benchmark run without the user asking for it to run. - Implement rtems-test-check in Python to make it faster. The shell script had grown to a point it was noticably slowing the build down. - Fix the configure.ac and Makefile.am files for a number of the test directories. The files are difficiult to keep in sync with the number of tests and mistakes can happen such as tests being left out of the build. The test fsrofs01 is an example. Also a there was a mix of SUBDIRS and _SUBDIRS being used and only _SUBDIRS should be used. - Fix the test fsrofs01 so it compiles. Closes #2963.
* score: Robust thread dispatchSebastian Huber2016-11-231-0/+1
| | | | | | | | | | | | 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.
* rtems: Add scheduler processor add/removeSebastian Huber2016-11-101-0/+1
| | | | Update #2797.
* score: First part of new MrsP implementationSebastian Huber2016-11-021-0/+1
| | | | Update #2556.
* smptests/smpmutex02: New testSebastian Huber2016-07-251-0/+1
| | | | Update #2765.
* 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: Remove the Giant lockSebastian Huber2016-05-201-1/+0
| | | | Update #2555.
* score: Add dummy Strong APA schedulerSebastian Huber2016-05-021-0/+1
| | | | | | Start with a copy of the Priority SMP scheduler implementation. Update #2510.
* score: Replace watchdog handler implementationSebastian Huber2016-03-041-0/+1
| | | | | | | | | Use a red-black tree instead of delta chains. Close #2344. Update #2554. Update #2555. Close #2606.
* score: Implement SMP-specific priority queueSebastian Huber2015-09-041-0/+1
|
* smpcapture02: Add test of functionality to add custom entries to capture traceDaniel Cederman2015-02-111-0/+1
|
* smpcapture01: New test.Jennifer Averett2014-11-241-0/+1
|
* smptests/smpcache01: Test the SMP cache managerDaniel Cederman2014-08-221-0/+1
| | | | Invokes SMP cache management routines under different scenarios.
* smpschedsem01: new test.Jennifer Averett2014-07-111-0/+1
| | | | | This test verifies priority is inherited from a high priority semaphore by a lower priority task.
* smpschedaffinity05: Add test for worst case migration for affintiy scheduler.Jennifer Averett2014-07-111-0/+1
| | | | | | This test uses a combination of priority and affinity to cause the tasks running on all 4 cores to change due to one task priority change.
* smpschedaffinity04: New test.Jennifer Averett2014-07-111-0/+1
| | | | | This test walks a secondary high prority task across all the cores.
* smpschedaffinity03: New test.Jennifer Averett2014-07-111-0/+1
| | | | This task walks the affinity of self across all the cores.
* smpschedaffinity02: New test.Jennifer Averett2014-07-111-0/+1
| | | | | This test checks setting the affinity of a secondary task on a two core system.
* smpschedaffinity01: New test.Jennifer Averett2014-07-111-0/+1
| | | | This test verifies that affinity is honored when set prior to task start.
* smptests/smpwakeafter01: New testSebastian Huber2014-06-181-0/+1
|
* score: Multiprocessor Resource Sharing ProtocolSebastian Huber2014-05-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | 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.
* score: Fix race condition in SMP startupSebastian Huber2014-05-261-1/+0
| | | | | | | | | | | | | | Do not use the Per_CPU_Control::started in _SMP_Start_multitasking_on_secondary_processor() since this field may be not up to date when a secondary processor reads it. Use the read-only scheduler assignment instead. Add a new fatal error SMP_FATAL_MULTITASKING_START_ON_INVALID_PROCESSOR. This prevents out-of-bounds access. It is currently not possible to test these fatal errors. One option would be to fake values of the _CPU_SMP_Get_current_processor(), but unfortunately this function is inline on some architectures.
* score: Split SMP scheduler enqueue functionSebastian Huber2014-05-151-0/+1
| | | | | | | | Extract code from _Scheduler_SMP_Enqueue_ordered() and move it to the new function _Scheduler_SMP_Enqueue_scheduled_ordered() to avoid untestable execution paths. Add and use function _Scheduler_SMP_Unblock().
* score: Implement forced thread migrationSebastian Huber2014-05-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current implementation of task migration in RTEMS has some implications with respect to the interrupt latency. It is crucial to preserve the system invariant that a task can execute on at most one processor in the system at a time. This is accomplished with a boolean indicator in the task context. The processor architecture specific low-level task context switch code will mark that a task context is no longer executing and waits that the heir context stopped execution before it restores the heir context and resumes execution of the heir task. So there is one point in time in which a processor is without a task. This is essential to avoid cyclic dependencies in case multiple tasks migrate at once. Otherwise some supervising entity is necessary to prevent life-locks. Such a global supervisor would lead to scalability problems so this approach is not used. Currently the thread dispatch is performed with interrupts disabled. So in case the heir task is currently executing on another processor then this prolongs the time of disabled interrupts since one processor has to wait for another processor to make progress. It is difficult to avoid this issue with the interrupt latency since interrupts normally store the context of the interrupted task on its stack. In case a task is marked as not executing we must not use its task stack to store such an interrupt context. We cannot use the heir stack before it stopped execution on another processor. So if we enable interrupts during this transition we have to provide an alternative task independent stack for this time frame. This issue needs further investigation.
* score: Add SMP test message handlerSebastian Huber2014-05-051-0/+1
| | | | | This handler can be used to test the inter-processor interrupt implementation.
* score: SMP_FATAL_SCHEDULER_WITHOUT_PROCESSORSSebastian Huber2014-05-051-1/+0
| | | | | Avoid the SMP_FATAL_SCHEDULER_WITHOUT_PROCESSORS fatal error and make it a run-time error in rtems_scheduler_ident() and _Scheduler_Get_by_id().
* score: Add clustered/partitioned schedulingSebastian Huber2014-04-151-2/+7
| | | | | | | | | | | | | | | Clustered/partitioned scheduling helps to control the worst-case latencies in the system. The goal is to reduce the amount of shared state in the system and thus prevention of lock contention. Modern multi-processor systems tend to have several layers of data and instruction caches. With clustered/partitioned scheduling it is possible to honour the cache topology of a system and thus avoid expensive cache synchronization traffic. We have clustered scheduling in case the set of processors of a system is partitioned into non-empty pairwise-disjoint subsets. These subsets are called clusters. Clusters with a cardinality of one are partitions. Each cluster is owned by exactly one scheduler instance.
* smptests/smpschedule01: Rename in smpscheduler01Sebastian Huber2014-04-091-1/+1
|
* score: Use thread action for thread restartSebastian Huber2014-03-311-0/+1
| | | | | The thread restart is now supported on SMP. New test smptests/smpthreadlife01.
* smptests/smpload01: New testSebastian Huber2014-03-141-0/+1
|
* Remove trailing whitespace in previous patchesJennifer Averett2014-03-071-1/+1
|
* smptests: Add smppsxaffinity02.Jennifer Averett2014-03-071-0/+1
| | | | | | | | This method exercises the ability to dynamically get and set the affinity of POSIX threads. NOTE: There is no scheduler support for affinity. This is simply a data integrity test.
* smptests: Add smppsxaffinity01.Jennifer Averett2014-03-071-0/+1
| | | | | This test exercises the ability to obtain and modify the affinity field of the POSIX thread attributes.
* smptests: Add smpaffinity01Jennifer Averett2014-03-071-0/+1
| | | | This test exercises the new Classic API task affinity methods.