summaryrefslogtreecommitdiffstats
path: root/testsuites/smptests (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Add SMP test message handlerSebastian Huber2014-05-056-0/+245
| | | | | This handler can be used to test the inter-processor interrupt implementation.
* score: SMP_FATAL_SCHEDULER_WITHOUT_PROCESSORSSebastian Huber2014-05-057-122/+51
| | | | | 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().
* smptests/smpload01: Reduce timeout valueSebastian Huber2014-04-161-7/+3
| | | | Use events instead of suspend/resume.
* score: Add clustered/partitioned schedulingSebastian Huber2014-04-1526-3/+879
| | | | | | | | | | | | | | | 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.
* rtems: Rename rtems_smp_get_current_processor()Sebastian Huber2014-04-1117-29/+29
| | | | | | | Rename rtems_smp_get_current_processor() in rtems_get_current_processor(). Make rtems_get_current_processor() a function in uni-processor configurations to enable ABI compatibility with SMP configurations.
* rtems: Rename rtems_smp_get_processor_count()Sebastian Huber2014-04-1122-33/+33
| | | | | | Rename rtems_smp_get_processor_count() in rtems_get_processor_count(). Make rtems_get_processor_count() a function in uni-processor configurations to enable ABI compatibility with SMP configurations.
* smptests/smpschedule01: Rename in smpscheduler01Sebastian Huber2014-04-097-23/+23
|
* Disable per task variables when SMP is enabledJoel Sherrill2014-04-041-9/+1
| | | | | | Per task variables are inherently unsafe in SMP systems. This patch disables them from the build and adds warnings in the appropriate documentation and configuration sections.
* smpaffinity01: Use Priority Affinity SMP scheduler.Jennifer Averett2014-04-031-1/+2
|
* smppsxaffinity01: Use Priority Affinity SMP scheduler.Jennifer Averett2014-04-031-0/+1
|
* smppsxaffinity02: Use Priority Affinity SMP scheduler.Jennifer Averett2014-04-031-0/+1
|
* smptests/smpthreadlife01: Avoid bad profiling statSebastian Huber2014-04-011-1/+5
|
* smptests/smpthreadlife01: TypoSebastian Huber2014-03-311-5/+0
|
* smptests/smpthreadlife01: Add test casesSebastian Huber2014-03-312-11/+159
|
* score: Thread life cycle re-implementationSebastian Huber2014-03-312-4/+71
| | | | | | | | | | | | | | | | | | | The thread deletion is now supported on SMP. This change fixes the following PRs: PR1814: SMP race condition between stack free and dispatch PR2035: psxcancel reveals NULL pointer access in _Thread_queue_Extract() The POSIX cleanup handler are now called in the right context (should be called in the context of the terminating thread). http://pubs.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_09.html Add a user extension the reflects a thread termination event. This is used to reclaim the Newlib reentrancy structure (may use file operations), the POSIX cleanup handlers and the POSIX key destructors.
* score: Use thread action for thread restartSebastian Huber2014-03-317-24/+157
| | | | | The thread restart is now supported on SMP. New test smptests/smpthreadlife01.
* smptests/smpfatal03: Fix end of test outputSebastian Huber2014-03-311-5/+12
|
* smptests/smpload01: Improve testSebastian Huber2014-03-212-122/+512
| | | | | Add a task producing memory traffic. Add tasks to obtain a priority inheritance semaphore in a synchronized way.
* Change all references of rtems.com to rtems.org.Chris Johns2014-03-2141-41/+41
|
* smptests/smpload01: Use test extensionSebastian Huber2014-03-171-0/+2
|
* tests/smptests: Use <rtems/test.h>Sebastian Huber2014-03-1727-83/+152
|
* smptests/smpload01: New testSebastian Huber2014-03-146-0/+344
|
* score: Add SMP lock profiling supportSebastian Huber2014-03-141-3/+3
|
* score: Add function to destroy SMP locksSebastian Huber2014-03-111-2/+10
|
* score: Add local context to SMP lock APISebastian Huber2014-03-111-10/+15
| | | | | | | | | | | Add a local context structure to the SMP lock API for acquire and release pairs. This context can be used to store the ISR level and profiling information. It may be later used to enable more sophisticated lock algorithms, e.g. MCS locks. There is only one lock that cannot be used with a local context. This is the per-CPU lock since here we would have to transfer the local context through a context switch which is very complicated.
* smptests/smppsxaffinity02: Fix end of test messageSebastian Huber2014-03-101-1/+1
|
* Remove trailing whitespace in previous patchesJennifer Averett2014-03-076-45/+45
|
* smptests: Add smppsxaffinity02.Jennifer Averett2014-03-076-0/+304
| | | | | | | | 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-076-0/+232
| | | | | This test exercises the ability to obtain and modify the affinity field of the POSIX thread attributes.
* smptests: Add smpaffinity01Jennifer Averett2014-03-076-0/+307
| | | | This test exercises the new Classic API task affinity methods.
* smptests: Delete config.h.inSebastian Huber2014-03-061-19/+0
|
* score: Add _Atomic_Fence()Sebastian Huber2014-03-062-19/+70
|
* score: Add and use _Giant_Drop()Sebastian Huber2014-03-066-0/+177
| | | | New test smptests/smpfatal03.
* score: SMP initialization and shutdown changesSebastian Huber2014-03-0610-0/+335
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* score: _CPU_SMP_Get_current_processor()Sebastian Huber2014-02-212-18/+64
| | | | | | | Remove RTEMS_COMPILER_PURE_ATTRIBUTE from _SMP_Get_current_processor() and all _CPU_SMP_Get_current_processor(). Make inline ASM statements volatile again. Test smptests/smpmigration01 showed that GCC optimizes too much otherwise.
* smptests: Add check for affinity support in newlib.Jennifer Averett2014-02-171-0/+21
|
* score: Add SMP barrierSebastian Huber2014-02-172-98/+16
|
* smptests/smplock01: Use atomic operationsSebastian Huber2014-02-171-57/+41
|
* Require presence of <stdatomic.h> for SMP supportSebastian Huber2014-02-172-4/+0
|
* score: Add Atomic_UintSebastian Huber2014-02-141-0/+54
|
* smptests/smp06: Delete testSebastian Huber2013-11-116-187/+0
| | | | | | | This test referred to the first version of the simple SMP scheduler which used the thread execution time for its scheduling decisions. For the current simple SMP scheduler, the execution time of threads is irrelevant (like in the corresponding single-processor variant).
* rename smpatomic08 to smpatomic01WeiY2013-10-087-26/+32
|
* delete smpatomic0-7 test casesWeiY2013-10-0844-1938/+0
|
* add simple atomic test cases into smpatomic08WeiY2013-10-081-0/+108
|
* smptests/smpatomic08: Add initialization test caseSebastian Huber2013-09-032-0/+43
|
* score: Use unsigned long for atomic integersSebastian Huber2013-09-038-62/+62
| | | | | | | Use unsigned long instead of uint_fast32_t since C11 provides only a ATOMIC_LONG_LOCK_FREE macro constant. This makes it also possible to use properly typed integer literals like 123UL. It is now clear which compatible type should be used for the atomic integer.
* smptests/smpatomic08: Avoid copy and pasteSebastian Huber2013-09-012-163/+86
|
* smptests/smpatomic08: Simplify or/and test caseSebastian Huber2013-09-011-38/+52
| | | | Renamed and use common integer variables.
* smptests/smpatomic08: Fix compare and exchangeSebastian Huber2013-09-011-9/+17
|
* add atomic sub, and, or, compare_exchange test cases into smpatomic08WeiY2013-09-012-1/+175
|