summaryrefslogtreecommitdiffstats
path: root/testsuites/smptests (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Add _Per_CPU_Add_job()Sebastian Huber2019-05-201-0/+43
|
* score: Simplify _SMP_Multicast_action()Sebastian Huber2019-05-201-10/+4
| | | | | | Move resposibility to disable thread dispatching to the caller of _SMP_Multicast_action(). Using an interrupt disable for this purpose is questionable.
* score: Add _SMP_Broadcast_action()Sebastian Huber2019-05-201-8/+32
|
* smptests: Move SMP broadcast action test caseSebastian Huber2019-05-202-51/+79
|
* smpmulticast01: Use T_TEST_CASE()Sebastian Huber2019-05-201-22/+27
|
* score: More robust _SMP_Multicast_action()Sebastian Huber2019-04-122-7/+1
| | | | | | If the caller already disabled interrupts, then do not disable thread dispatching. Calling _SMP_Multicast_action() with interrupts disabled is a questionable use case.
* score: Improve _SMP_Multicast_action()Sebastian Huber2019-04-122-73/+127
| | | | Let it work during system initialization.
* score: Rework SMP multicast actionSebastian Huber2019-04-122-1/+7
| | | | | Use a FIFO list of jobs per processor to carry out the SMP multicast action. Use a done indicator per job to reduce the bus traffic a bit.
* score: Use processor mask in _SMP_Multicast_actionSebastian Huber2019-04-126-38/+386
| | | | Processor_mask is the internal data type to deal with processor sets.
* rtems: Add rtems_scheduler_get_processor_maximum()Sebastian Huber2019-04-0943-71/+86
| | | | | | | | | | | 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-0931-115/+115
| | | | | | | | | | | 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.
* score: Fix plain priority thread queues (SMP)Sebastian Huber2019-02-071-0/+63
| | | | We must add/remove the priority queue to the FIFO of priority queues.
* build: Do not install test programsSebastian Huber2019-01-301-3/+1
|
* rtems: Allow to set ISR level 0 in SMP configSebastian Huber2019-01-091-1/+1
| | | | Update #3000.
* score: Fix per-CPU data allocationSebastian Huber2018-12-185-0/+117
| | | | | | | | | | | 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.
* Spelling and grammar fixes in source code comments (GCI 2018)Marçal Comajoan Cara2018-12-041-1/+1
|
* Remove rtems_cache_*_processor_set() functionsSebastian Huber2018-11-261-45/+7
| | | | | | | | The following rtems_cache_*_processor_set() cache manager API functions are exotic, complex, very hard to use correctly, not used in the RTEMS code base, and apparently unused by applications. Close #3622.
* posix: Enable more smptests tests by defaultSebastian Huber2018-10-291-6/+0
| | | | Update #2514.
* build: Remove local.amSebastian Huber2018-10-101-1/+0
|
* tests: Use rtems_task_exit()Sebastian Huber2018-10-054-6/+4
| | | | Update #3533.
* score: Remove CPU_PROVIDES_IDLE_THREAD_BODYSebastian Huber2018-10-052-12/+0
| | | | | | | Remove the CPU_PROVIDES_IDLE_THREAD_BODY option to avoid unnecessary conditional compilation. Close #3539.
* smp03: make printout match actual task nameDaniel Hellstrom2018-09-201-1/+1
|
* score: Add thread pin/unpin supportSebastian Huber2018-09-105-0/+679
| | | | | | | | | 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 EDF SMP schedulerSebastian Huber2018-09-031-0/+24
| | | | | Fix a special case: block a one-to-one scheduled thread while having a non-empty affine ready queue on the same processor.
* bsps: bsp_start_on_secondary_processor()Sebastian Huber2018-07-251-2/+4
| | | | | | Pass current processor control as first parameter in bsp_start_on_secondary_processor() and qoriq_start_thread() to make dependency more explicit.
* smptests: Fix format warningsSebastian Huber2018-07-242-14/+36
|
* score: Fix _Scheduler_EDF_SMP_Set_affinity()Sebastian Huber2018-07-185-0/+172
| | | | | | Commit 8744498752ad4f0eaf9fb5640c6a0e0f2dc92fda broke the _Scheduler_EDF_SMP_Set_affinity() implementation. We must test the overall affinity against the online processors.
* riscv: Add dummy SMP supportSebastian Huber2018-06-281-1/+2
| | | | Update #3433.
* tests: Remove configure feature checksSebastian Huber2018-05-023-50/+1
| | | | Update #3409.
* smptests/smpschededf02: Add test caseSebastian Huber2018-04-271-3/+8
|
* smptests/smpschedaffinity02: Fix configurationSebastian Huber2018-04-231-0/+2
|
* 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-1057-1191/+691
| | | | | | This change is part of the testsuite Makefile.am reorganization. Update #3382
* config: Use new scheduler configuration definesSebastian Huber2018-03-1217-304/+304
| | | | Update #3325.
* smptests: Fix obsolete FIXME comments/codeSebastian Huber2018-03-072-4/+2
|
* smptests/smpopenmp01: New testSebastian Huber2018-02-027-0/+510
|
* smpschededf01: Use rtems_test_busy_cpu_usage()Sebastian Huber2018-02-021-11/+5
| | | | | The rtems_test_busy() is not accurate enough and may lead to sporadic test failures.
* smpschedaffinity04: Fix configurationSebastian Huber2018-02-021-0/+2
|
* smpcapture01: Fix configurationSebastian Huber2018-02-021-0/+2
|
* 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.
* smptests: Fix configurationSebastian Huber2018-01-222-0/+2
| | | | Update #2843.
* smp03: Use floating-point tasksSebastian Huber2018-01-192-3/+2
| | | | This test uses sprintf().
* smp03: Use floating-point taskSebastian Huber2018-01-191-2/+1
| | | | This test uses sprintf().
* smpaffinity01: Use floating-point taskSebastian Huber2018-01-191-0/+1
| | | | This test uses sprintf().
* smp08: Use floating-point taskSebastian Huber2018-01-191-0/+1
| | | | This test uses sprintf().
* smpmigration01: Enable floating-point outputSebastian Huber2018-01-191-0/+1
|
* smpunsupported01: Add missing error check for rtems_task_modeJoel Sherrill2017-12-062-1/+13
| | | | | | Update test documentation to include more cases. Updates #3000.
* score: Optimize scheduler priority updatesSebastian Huber2017-11-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Thread priority changes may append or prepend the thread to its priority group on the scheduler ready queue. Previously, a separate priority value and a prepend-it flag in the scheduler node were used to propagate a priority change to the scheduler. Now, use an append-it bit in the priority control and reduce the plain priority value to 63 bits. This change leads to a significant code size reduction (about 25%) of the SMP schedulers. The negligible increase of the standard priority scheduler is due to some additional shift operations (SCHEDULER_PRIORITY_MAP() and SCHEDULER_PRIORITY_UNMAP()). Before: text filename 136 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleblock.o 464 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimplechangepriority.o 24 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimple.o 108 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleschedule.o 292 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleunblock.o 264 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleyield.o text filename 280 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityblock.o 488 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerprioritychangepriority.o 200 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriority.o 164 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityschedule.o 328 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityunblock.o 200 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityyield.o text filename 24112 arm-rtems5/c/imx7/cpukit/score/src/libscore_a-scheduleredfsmp.o text filename 37204 sparc-rtems5/c/gr740/cpukit/score/src/libscore_a-scheduleredfsmp.o text filename 42236 powerpc-rtems5/c/qoriq_e6500_32/cpukit/score/src/libscore_a-scheduleredfsmp.o After: text filename 136 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleblock.o 272 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimplechangepriority.o 24 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimple.o 108 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleschedule.o 292 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleunblock.o 264 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleyield.o text filename 280 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityblock.o 488 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerprioritychangepriority.o 208 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriority.o 164 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityschedule.o 332 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityunblock.o 200 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityyield.o text filename 18860 arm-rtems5/c/imx7/cpukit/score/src/libscore_a-scheduleredfsmp.o text filename 28520 sparc-rtems5/c/gr740/cpukit/score/src/libscore_a-scheduleredfsmp.o text filename 32664 powerpc-rtems5/c/qoriq_e6500_32/cpukit/score/src/libscore_a-scheduleredfsmp.o
* score: Fix priority ceiling updatesSebastian Huber2017-11-161-2/+56
| | | | | | | | | | | | We must not clear the priority updates in _Thread_queue_Extract_locked() since this function is used by the priority ceiling surrender operations after the ceiling priority handover from the previous owner to the new owner. This is especially important in SMP configurations. Move the _Thread_queue_Context_clear_priority_updates() invocation to the callers. Close #3237.
* score: Fix _Thread_queue_Flush_critical()Sebastian Huber2017-11-161-33/+70
| | | | | | | | | The thread queue extract operations performed by the _Thread_queue_Flush_critical() may result in a priority change of the thread queue owner. Carry out the scheduler priority update operation. This is especially important in SMP configurations. Close #3236.