summaryrefslogtreecommitdiffstats
path: root/testsuites/smptests (follow)
Commit message (Collapse)AuthorAgeFilesLines
* testsuites/smpmulticast01: Enforce step orderingKinsey Moore2021-09-211-0/+1
| | | | | | The order in which step checks for 1 and 2 are not rigidly defined and may actually occur in either order depending on how the threads execute. This waits for the job to complete to enforce the existing ordering.
* build: Remove old build systemSebastian Huber2021-09-212-770/+0
| | | | | Close #3250. Close #4081.
* smpfatal01: Fix test time out on sparc/leon3Sebastian Huber2021-08-301-1/+1
| | | | | End the test on the processor which triggers the test condition. This avoids endless power down loops in the sparc/leon3 BSP.
* score: Replace priority prepend it with an enumSebastian Huber2021-08-121-33/+36
| | | | | | | | Use the new Priority_Group_order enum instead of a boolean to indicated if a priority should be inserted as the first or last node into its priority group. This makes the code more expressive. It is also a bit more efficient since a branch in _Scheduler_Node_set_priority() is avoided and a simple bitwise or operation can be used.
* score: Change _SMP_Send_message() parameter typeSebastian Huber2021-07-292-5/+11
| | | | | Use the processor control to specify the target processor since this is what the callers have available.
* score: Add _Per_CPU_Submit_job()Sebastian Huber2021-07-292-10/+3
|
* score: Simplify SMP processor state handlingSebastian Huber2021-07-284-23/+61
| | | | | | | | The per-CPU states which control the SMP system initialization were added quite early during the SMP support development. Replace this initial implementation with a simplified one. There is no longer a global SMP lock required which serialized the state changes of all processors. The new implementation better integrates with the per-CPU jobs.
* score: Remove processor event broadcast/receiveSebastian Huber2021-07-285-12/+10
| | | | | | Remove _CPU_SMP_Processor_event_broadcast() and _CPU_SMP_Processor_event_receive(). These functions are hard to use since they are subject to the lost wake up problem.
* Update test smpstrongapa01Richi Dubey2021-07-061-19/+47
| | | | Update smpstrongapa01 to account for task shifting.
* bsps/irq: Use BSP_INTERRUPT_VECTOR_COUNTSebastian Huber2021-06-241-1/+1
| | | | | | Use BSP_INTERRUPT_VECTOR_COUNT instead of BSP_INTERRUPT_VECTOR_MAX. Update #3269.
* smpcapture02: Fix use of BSP_INTERRUPT_VECTOR_MAXSebastian Huber2021-06-241-1/+1
| | | | | | This define represents the last valid interrupt vector number. Update #3269.
* bsps/irq: Remove BSP_INTERRUPT_VECTOR_MINSebastian Huber2021-06-241-1/+1
| | | | | | | | | | Remove BSP_INTERRUPT_VECTOR_MIN and unconditionally let interrupt vector numbers start with zero. The BSP_INTERRUPT_VECTOR_MIN == 0 invariant was tested by the previous commit and building all BSPs. Update #3269.
* score: Add PER_CPU_DATA_NEED_INITIALIZATION()Sebastian Huber2021-06-101-0/+2
| | | | | | | | | Make the initialization of the per-CPU data optional. Change license to BSD-2-Clause according to file history and re-licensing agreement. Update #3053.
* rtems: Change rtems_task_get_affinity() statusSebastian Huber2021-04-271-1/+1
| | | | | | | | | In case the processor set is not large enough to contain the processor affinity set of the task return RTEMS_INVALID_SIZE instead of RTEMS_INVALID_NUMBER. This is more in line with other directives since the issue is related to the size of an object. Close #4393.
* smpfatal08: block secondary processorsJiri Gaisler2021-04-131-0/+2
| | | | | | * On some SMP platforms, all cpus are started by the boot-loader. We need to block the secondary cpus or they will clobber the test output.
* rtems: Allow initially locked MrsP semaphoresSebastian Huber2021-03-161-4/+10
| | | | | | Rejecting initially locked MrsP semaphores was due to a limitiation of the early limitiation of the MrsP protocol. This limitation no longer exists.
* rtems: Require RTEMS_PRIORITY for MrsP semaphoresSebastian Huber2021-03-163-7/+8
| | | | | | | | | MrsP semaphores are a generalization of the priority ceiling semaphores for SMP configurations. Priority ceiling semaphores are required to use the priority task wait queue discipline. Require this discipline also for MrsP semaphores. Close #4347.
* mrsp: Change error status for a nested seizeSebastian Huber2021-01-211-1/+1
| | | | | | | | Return STATUS_DEADLOCK (RTEMS_INCORRECT_STATE) to indicate a nested seize since this is a kind of deadlock. This status code is also used for other deadlocks. Update #4217.
* smptests/smpipi01: Fix sporadic test failureSebastian Huber2020-12-091-0/+7
|
* rtems: Improve rtems_interrupt_server_create()Sebastian Huber2020-11-241-2/+63
| | | | | | Also start interrupt server tasks on processors which do not have a scheduler. Applications may dynamically manage processors using rtems_scheduler_remove_processor() and rtems_scheduler_add_processor().
* smpmulticast01: Fix NULL pointer accessSebastian Huber2020-11-101-1/+1
|
* tests: Add and use <rtems/testopts.h>Sebastian Huber2020-10-011-1/+2
| | | | | Add the build option RTEMS_TEST_VERBOSITY to control the verbosity of test suites using the RTEMS Test Framework.
* irqs01/smpirqs01: New testsSebastian Huber2020-09-142-0/+210
| | | | Close #4034.
* libtest: Change T_step() and T_assert_step()Sebastian Huber2020-08-181-8/+8
| | | | | | | | | | | Normally, the expected test step must be a compile time constant. Allow variable expected test steps for the T_step() and T_assert_step(). This can be used for parameterized test loops with individual fixtures. Remove the ability to use custom failure messages due to some implementation constraints. Update #3199.
* smpschededf02: Document reset() functionSebastian Huber2020-08-041-1/+13
|
* libtest: Move <t.h> to <rtems/test.h>Sebastian Huber2020-07-231-1/+1
| | | | Update #3199.
* libtest: <rtems/test.h> to <rtems/test-info.h>Sebastian Huber2020-07-236-6/+6
| | | | | | | | Rename this header file to later move <t.h> to <rtems/test.h>. The main feature provided by <rtems/test-info.h> is the output of standard test information which is consumed by the RTEMS Tester. Update #3199.
* smpsignal01: Change state before sending the signalJan Sommer2020-06-111-1/+1
| | | | | | The signal handler of the consumer might start executing before rtems_signal_send of the producer returns. Therefore change the state to SIG_1_SENT before sending the signal.
* Canonicalize config.h includeSebastian Huber2020-04-1636-36/+36
| | | | | | | | Use the following variant which was already used by most source files: #ifdef HAVE_CONFIG_H #include "config.h" #endif
* config: Remove CONFIGURE_DISABLE_SMP_CONFIGURATIONSebastian Huber2020-02-251-2/+0
| | | | | | | | | | The CONFIGURE_DISABLE_SMP_CONFIGURATION configuration option and rtems_configuration_is_smp_enabled() were added during the SMP support development cycle as a workaround to fix some testsuite failures in SMP configurations. All use cases were replaced with tests for specific conditions. The configuration option and test macro were undocumented. Close #3876.
* smpschededf02: Improve readabilitySebastian Huber2020-02-141-66/+74
|
* smpfatal09: Fix test caseSebastian Huber2020-02-141-6/+0
| | | | Update #3838.
* bsps: Rework work area initializationSebastian Huber2020-02-041-4/+29
| | | | | | | | | | | | | | | | | | | | The work area initialization was done by the BSP through bsp_work_area_initialize(). This approach predated the system initialization through the system initialization linker set. The workspace and C program heap were unconditionally initialized. The aim is to support RTEMS application configurations which do not need the workspace and C program heap. In these configurations, the workspace and C prgram heap should not get initialized. Change all bsp_work_area_initialize() to implement _Memory_Get() instead. Move the dirty memory, sbrk(), per-CPU data, workspace, and malloc() heap initialization into separate system initialization steps. This makes it also easier to test the individual initialization steps. This change adds a dependency to _Heap_Extend() to all BSPs. This dependency will be removed in a follow up change. Update #3838.
* smptests/smpmulticast01: Fix test configurationSebastian Huber2020-01-281-1/+1
| | | | Problem introduced by 77ac1519e863b7095f69c976353f7647c6f6f63b.
* config: Improve EDF SMP scheduler configurationSebastian Huber2019-12-195-7/+7
| | | | | | | | Use CONFIGURE_MAXIMUM_PROCESSORS to configure the EDF SMP scheduler context. This avoids hard to debug configuration errors resulting in memory corruptions. Close #3815.
* rtems: Simplify semaphore configurationSebastian Huber2019-12-113-3/+0
| | | | | | | | | | | | | | | The MrsP semaphore implementation predates the addition of self-contained synchronization objects. At this time, the potential memory reduction was justified considering the more complex configuration and additional use of the workspace. With the availability of self-contained synchronization options, e.g. POSIX mutexes, this is no longer justified. Memory constrained applications should use the self-contained synchronization objects. Remove the CONFIGURE_MAXIMUM_MRSP_SEMAPHORES configuration option. This has only an impact on applications which use SMP and a large number of scheduler instances. Update #3833.
* libtest: Change expected pass state stringSebastian Huber2019-12-055-5/+5
| | | | Use separator character '_' for all test states.
* tests: Remove superfluous SMPTESTS defineSebastian Huber2019-11-121-7/+7
| | | | Update #3818.
* score: Add _SMP_Unicast_action()Sebastian Huber2019-05-202-43/+151
|
* score: Add _SMP_Synchronize()Sebastian Huber2019-05-201-3/+4
|
* smpipi01: Use per-CPU jobs for IPI flood testSebastian Huber2019-05-201-9/+38
|
* smpipi01: Ensure IPI works on all processorsSebastian Huber2019-05-201-8/+21
|
* smpipi01: Use per-CPU jobs for pending IPI testSebastian Huber2019-05-201-15/+35
|
* score: Modify _Per_CPU_Perform_jobs()Sebastian Huber2019-05-201-0/+41
| | | | | | | | Process only the jobs initially registered on the processing list. This makes it possible to add jobs for the current processor in a job handler. These jobs are processed with the next SMP_MESSAGE_PERFORM_JOBS message. The lock is only acquired and released once.
* 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.