summaryrefslogtreecommitdiffstats
path: root/testsuites/smptests/configure.ac (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-09-21build: Remove old build systemSebastian Huber1-97/+0
Close #3250. Close #4081.
2019-04-12score: Use processor mask in _SMP_Multicast_actionSebastian Huber1-0/+1
Processor_mask is the internal data type to deal with processor sets.
2018-12-18score: Fix per-CPU data allocationSebastian Huber1-0/+1
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.
2018-09-10score: Add thread pin/unpin supportSebastian Huber1-0/+1
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.
2018-07-18score: Fix _Scheduler_EDF_SMP_Set_affinity()Sebastian Huber1-0/+1
Commit 8744498752ad4f0eaf9fb5640c6a0e0f2dc92fda broke the _Scheduler_EDF_SMP_Set_affinity() implementation. We must test the overall affinity against the online processors.
2018-05-02tests: Remove configure feature checksSebastian Huber1-22/+1
Update #3409.
2018-04-11configure: Add subdir-objects to all automake flags.Chris Johns1-1/+1
This option silences warning with automake-1.16.1 allowing us to upgrade to that version. This change has been tested with automake-1.12.6 and automake-1.16.1. It seems version 1.16.1 configures slower than 1.12.6 for the same source and BSP. The newer versions is 6 second slower. Close #3387.
2018-04-10testsuite/smptests: Merged nested Makefile.am files into one Makefile.amChris Johns1-60/+60
This change is part of the testsuite Makefile.am reorganization. Update #3382
2018-02-02smptests/smpopenmp01: New testSebastian Huber1-0/+1
2018-01-25Remove make preinstallChris Johns1-0/+2
A speciality of the RTEMS build system was the make preinstall step. It copied header files from arbitrary locations into the build tree. The header files were included via the -Bsome/build/tree/path GCC command line option. This has at least seven problems: * The make preinstall step itself needs time and disk space. * Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error. * There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult. * The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit. * An introduction of a new build system is difficult. * Include paths specified by the -B option are system headers. This may suppress warnings. * The parallel build had sporadic failures on some hosts. This patch removes the make preinstall step. All installed header files are moved to dedicated include directories in the source tree. Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc, etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g. erc32, imx, qoriq, etc. The new cpukit include directories are: * cpukit/include * cpukit/score/cpu/@RTEMS_CPU@/include * cpukit/libnetworking The new BSP include directories are: * bsps/include * bsps/@RTEMS_CPU@/include * bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include There are build tree include directories for generated files. The include directory order favours the most general header file, e.g. it is not possible to override general header files via the include path order. The "bootstrap -p" option was removed. The new "bootstrap -H" option should be used to regenerate the "headers.am" files. Update #3254.
2017-07-10score: Add simple affinity support to EDF SMPSebastian Huber1-0/+2
Update #3059.
2017-06-29smptests/smpschededf01: New testSebastian Huber1-0/+1
Update #3056.
2017-06-29score: Add SMP EDF schedulerSebastian Huber1-0/+1
Update #3056.
2017-06-29smptests: Split smpscheduler03Sebastian Huber1-0/+2
Split smpscheduler03 to run the tests with only one processor. Update #3056.
2017-04-04testsuite: Add a common test configuration. Fix configure.ac and Makefile.am ↵Chris Johns1-4/+4
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.
2017-01-11Remove obsolete __RTEMS_HAVE_SYS_CPUSET_H__Joel Sherrill1-4/+0
2016-11-23score: Robust thread dispatchSebastian Huber1-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.
2016-11-10rtems: Add scheduler processor add/removeSebastian Huber1-0/+1
Update #2797.
2016-11-02score: First part of new MrsP implementationSebastian Huber1-0/+1
Update #2556.
2016-07-25smptests/smpmutex02: New testSebastian Huber1-0/+1
Update #2765.
2016-06-22score: Introduce map priority scheduler operationSebastian Huber1-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.
2016-05-20score: Remove the Giant lockSebastian Huber1-1/+0
Update #2555.
2016-05-02score: Add dummy Strong APA schedulerSebastian Huber1-0/+1
Start with a copy of the Priority SMP scheduler implementation. Update #2510.
2016-03-04score: Replace watchdog handler implementationSebastian Huber1-0/+1
Use a red-black tree instead of delta chains. Close #2344. Update #2554. Update #2555. Close #2606.
2015-09-04score: Implement SMP-specific priority queueSebastian Huber1-0/+1
2015-02-11smpcapture02: Add test of functionality to add custom entries to capture traceDaniel Cederman1-0/+1
2014-12-05Update bug report URLSebastian Huber1-1/+1
2014-11-24smpcapture01: New test.Jennifer Averett1-0/+1
2014-08-22smptests/smpcache01: Test the SMP cache managerDaniel Cederman1-0/+1
Invokes SMP cache management routines under different scenarios.
2014-07-11smpschedsem01: new test.Jennifer Averett1-0/+1
This test verifies priority is inherited from a high priority semaphore by a lower priority task.
2014-07-11smpschedaffinity05: Add test for worst case migration for affintiy scheduler.Jennifer Averett1-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.
2014-07-11smpschedaffinity04: New test.Jennifer Averett1-0/+1
This test walks a secondary high prority task across all the cores.
2014-07-11smpschedaffinity03: New test.Jennifer Averett1-0/+1
This task walks the affinity of self across all the cores.
2014-07-11smpschedaffinity02: New test.Jennifer Averett1-0/+1
This test checks setting the affinity of a secondary task on a two core system.
2014-07-11smpschedaffinity01: New test.Jennifer Averett1-0/+1
This test verifies that affinity is honored when set prior to task start.
2014-06-18smptests/smpwakeafter01: New testSebastian Huber1-0/+1
2014-05-28score: Multiprocessor Resource Sharing ProtocolSebastian Huber1-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.
2014-05-26score: Fix race condition in SMP startupSebastian Huber1-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.
2014-05-15score: Split SMP scheduler enqueue functionSebastian Huber1-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().
2014-05-07score: Implement forced thread migrationSebastian Huber1-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.
2014-05-05score: Add SMP test message handlerSebastian Huber1-0/+1
This handler can be used to test the inter-processor interrupt implementation.
2014-05-05score: SMP_FATAL_SCHEDULER_WITHOUT_PROCESSORSSebastian Huber1-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().
2014-04-15score: Add clustered/partitioned schedulingSebastian Huber1-1/+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.
2014-04-09smptests/smpschedule01: Rename in smpscheduler01Sebastian Huber1-1/+1
2014-03-31score: Use thread action for thread restartSebastian Huber1-0/+1
The thread restart is now supported on SMP. New test smptests/smpthreadlife01.
2014-03-14smptests/smpload01: New testSebastian Huber1-0/+1
2014-03-07smptests: Add smppsxaffinity02.Jennifer Averett1-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.
2014-03-07smptests: Add smppsxaffinity01.Jennifer Averett1-0/+1
This test exercises the ability to obtain and modify the affinity field of the POSIX thread attributes.
2014-03-07smptests: Add smpaffinity01Jennifer Averett1-0/+1
This test exercises the new Classic API task affinity methods.
2014-03-06score: Add and use _Giant_Drop()Sebastian Huber1-0/+1
New test smptests/smpfatal03.