summaryrefslogtreecommitdiffstats
path: root/testsuites/smptests/configure.ac (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Use processor mask in _SMP_Multicast_actionSebastian Huber2019-04-121-0/+1
| | | | Processor_mask is the internal data type to deal with processor sets.
* score: Fix per-CPU data allocationSebastian Huber2018-12-181-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.
* score: Add thread pin/unpin supportSebastian Huber2018-09-101-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.
* score: Fix _Scheduler_EDF_SMP_Set_affinity()Sebastian Huber2018-07-181-0/+1
| | | | | | Commit 8744498752ad4f0eaf9fb5640c6a0e0f2dc92fda broke the _Scheduler_EDF_SMP_Set_affinity() implementation. We must test the overall affinity against the online processors.
* tests: Remove configure feature checksSebastian Huber2018-05-021-22/+1
| | | | Update #3409.
* configure: Add subdir-objects to all automake flags.Chris Johns2018-04-111-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.
* testsuite/smptests: Merged nested Makefile.am files into one Makefile.amChris Johns2018-04-101-60/+60
| | | | | | This change is part of the testsuite Makefile.am reorganization. Update #3382
* smptests/smpopenmp01: New testSebastian Huber2018-02-021-0/+1
|
* Remove make preinstallChris Johns2018-01-251-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.
* 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-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.
* Remove obsolete __RTEMS_HAVE_SYS_CPUSET_H__Joel Sherrill2017-01-111-4/+0
|
* 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
|
* Update bug report URLSebastian Huber2014-12-051-1/+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-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.
* 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
|
* 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.
* score: Add and use _Giant_Drop()Sebastian Huber2014-03-061-0/+1
| | | | New test smptests/smpfatal03.
* score: SMP initialization and shutdown changesSebastian Huber2014-03-061-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename _SMP_Request_other_cores_to_perform_first_context_switch() into _SMP_Request_start_multitasking() since this requests now a multitasking start on all configured and available processors. The name corresponds _Thread_Start_multitasking() and _SMP_Start_multitasking_on_secondary_processor() actions issued in response to this request. Move in source file to right place. Rename PER_CPU_STATE_READY_TO_BEGIN_MULTITASKING into PER_CPU_STATE_READY_TO_START_MULTITASKING. Rename PER_CPU_STATE_BEGIN_MULTITASKING into PER_CPU_STATE_REQUEST_START_MULTITASKING. Rename _SMP_Request_other_cores_to_shutdown() into _SMP_Request_shutdown(). Add a per-CPU state lock to protect all changes. This was necessary to offer a controlled shutdown of the system (atomic read/writes alone are not sufficient for this kind of synchronization). Add documentation for Per_CPU_State. Delete debug output. New tests smptests/smpfatal01 and smptests/smpfatal02.