summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests (follow)
Commit message (Collapse)AuthorAgeFilesLines
* sptests/spheapprot: Fix warningSebastian Huber2020-03-041-1/+5
|
* sptests/spextensions01: Add commentSebastian Huber2020-03-031-0/+9
| | | | Update #3885.
* rtems: Add rtems_scheduler_map_priority_from_posix()Sebastian Huber2020-03-031-0/+44
| | | | Update #3881.
* rtems: Add rtems_scheduler_map_priority_to_posix()Sebastian Huber2020-03-031-7/+45
| | | | Update #3881.
* score: Fix context switch extensions (SMP)Sebastian Huber2020-02-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In uniprocessor and SMP configurations, the context switch extensions were called during _Thread_Do_dispatch(): void _Thread_Do_dispatch( Per_CPU_Control *cpu_self, ISR_Level level ) { Thread_Control *executing; executing = cpu_self->executing; ... do { Thread_Control *heir; heir = _Thread_Get_heir_and_make_it_executing( cpu_self ); ... _User_extensions_Thread_switch( executing, heir ); ... _Context_Switch( &executing->Registers, &heir->Registers ); ... } while ( cpu_self->dispatch_necessary ); ... } In uniprocessor configurations, this is fine and the context switch extensions are called for all thread switches except the very first thread switch to the initialization thread. However, in SMP configurations, the context switch may be invalidated and updated in the low-level _Context_Switch() routine. See: https://docs.rtems.org/branches/master/c-user/symmetric_multiprocessing_services.html#thread-dispatch-details In case such an update happens, a thread will execute on the processor which was not seen in the previous call of the context switch extensions. This can confuse for example event record consumers which use events generated by a context switch extension. Fixing this is not straight forward. The context switch extensions call must move after the low-level context switch. The problem here is that we may end up in _Thread_Handler(). Adding the context switch extensions call to _Thread_Handler() covers now also the thread switch to the initialization thread. We also have to save the last executing thread (ancestor) of the processor. Registers or the stack cannot be used for this purpose. We have to add it to the per-processor information. Existing extensions may be affected, since now context switch extensions use the stack of the heir thread. The stack checker is affected by this. Calling the thread switch extensions in the low-level context switch is difficult since at this point an intermediate stack is used which is only large enough to enable servicing of interrupts. Update #3885.
* config: Initialize IO drivers on demandSebastian Huber2020-02-261-0/+2
|
* config: Remove CONFIGURE_DISABLE_SMP_CONFIGURATIONSebastian Huber2020-02-2524-48/+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.
* config: CONFIGURE_INIT_TASK_INITIAL_MODESSebastian Huber2020-02-252-0/+3
| | | | | | | | | | Determine the default for CONFIGURE_INIT_TASK_INITIAL_MODES depeding on whether RTEMS_SMP is defined or not. In the tests, use CONFIGURE_INIT_TASK_INITIAL_MODES to explicitly request RTEMS_NO_PREEMPT mode if necessary. Update #3876.
* libio: Add POSIX user environment pointer to TCBSebastian Huber2020-02-257-74/+40
| | | | | | | | | | The IO library used a POSIX key to store an optional POSIX user environment pointer. This pulled in the POSIX keys support in every application configuration. Add a user environment pointer to the thread control block (TCB) instead. Applications which do not need the POSIX user environment will just get an overhead of one pointer per thread. Close #3882.
* config: Bring back RTEMS 4.11 configuration tableSebastian Huber2020-02-251-0/+21
| | | | | This improves API backward compatibility of RTEMS 5.1 to previous versions.
* config: Remove CONFIGURE_HAS_OWN_INIT_TASK_TABLESebastian Huber2020-02-256-120/+23
| | | | | | | | | | | | | | | | | | | The CONFIGURE_HAS_OWN_INIT_TASK_TABLE and CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE are the last *_HAS_OWN_* configuration options. These two options are probably unused, see also: * https://lists.rtems.org/pipermail/users/2019-April/033129.html * https://lists.rtems.org/pipermail/users/2019-April/033130.html Removing them simplifies the configuration. If there is a real user need which shows up after the removal, we can resurrect them on demand. Using CONFIGURE_HAS_OWN_INIT_TASK_TABLE would have required the use of the undocumented CONFIGURE_INIT_TASK_TABLE and CONFIGURE_INIT_TASK_TABLE_SIZE configuration options. Update #3873.
* sptests/spcbssched03: Include missing header fileSebastian Huber2020-02-251-0/+2
| | | | Update #3875.
* score: Remove unused _Workspace_Allocate_aligned()Sebastian Huber2020-02-171-14/+0
|
* score: Add _Freechain_Pop()Sebastian Huber2020-02-121-0/+4
| | | | Update #3835.
* score: Add _Freechain_Is_empty()Sebastian Huber2020-02-121-1/+2
| | | | Update #3835.
* score: Statically allocate idle/MPCI stacksSebastian Huber2020-02-121-2/+2
| | | | | | | Place idle and MPCI stacks into extra linker sections. This can be optionally used by applications to control the placement of the stacks. Update #3835.
* sptests/spregion_err01: Reduce memory demandsSebastian Huber2020-02-111-7/+4
| | | | Make functions and data static.
* config: Add CONFIGURE_DIRTY_MEMORYSebastian Huber2020-02-061-0/+2
| | | | | | | Replace the BSP_DIRTY_MEMORY BSP option with a CONFIGURE_DIRTY_MEMORY configuration option. Update #3843.
* sysinit: Add RTEMS_SYSINIT_ZERO_MEMORYSebastian Huber2020-02-061-0/+2
| | | | | | | | Use a dedicate system initialization step to zero the memory used for the workspace and C program heap. This avoids dead code in case CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY is not configured.
* config: CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLYSebastian Huber2020-02-061-3/+2
| | | | | | | Canonicalize CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY and use defined/undefined instead of TRUE/FALSE. Close #3862.
* config: Add CONFIGURE_VERBOSE_SYSTEM_INITIALIZATIONSebastian Huber2020-02-041-2/+4
| | | | Update #3861.
* sysinit: Add RTEMS_SYSINIT_ORDER_LAST_BUT_[1-9]Sebastian Huber2020-02-041-0/+18
| | | | Update #3838.
* bsps: Rework work area initializationSebastian Huber2020-02-043-13/+63
| | | | | | | | | | | | | | | | | | | | 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.
* rtems: Fix MPCI initializationSebastian Huber2020-01-021-26/+0
| | | | Update #2408.
* sppercpudata01: Test PER_CPU_DATA_OFFSET()Sebastian Huber2019-12-201-1/+4
| | | | | Make sure PER_CPU_DATA_OFFSET() is tested also in uniprocessor configurations.
* config: CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORSSebastian Huber2019-12-1911-11/+11
| | | | | | | Rename CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS into CONFIGURE_MAXIMUM_FILE_DESCRIPTORS. Update #3753.
* score: Remove _Workspace_Allocate_or_fatal_error()Sebastian Huber2019-12-135-64/+0
| | | | | | This function is unused. Update #3735.
* config: Add _MPCI_ConfigurationSebastian Huber2019-12-131-8/+1
| | | | | | | Replace the user MPCI configuration table with a system provided _MPCI_Configuration. Update #3735.
* config: Add CONFIGURE_IMFS_ENABLE_MKFIFOSebastian Huber2019-12-134-4/+6
| | | | | | | | Obsolete undocumented configuration options CONFIGURE_MAXIMUM_FIFOS and CONFIGURE_MAXIMUM_PIPES. Replace these options with the new CONFIGURE_IMFS_ENABLE_MKFIFO configuration option. Update #3840.
* Add TOD Hooks to allow BSP to take action when TOD is setJoel Sherrill2019-12-115-0/+377
| | | | | | | | | | | | Two use cases were envisioned for this. 1) a BSP or application which desires to update a real-time clock when the RTEMS TOD is set. 2) a paravirtualized BSP can use this to propagate setting the time in an RTEMS application to the hosting environment. This enables the entire set of applications in the virtualized environments to have a single consistent TOD.
* pipe: Use condition variablesSebastian Huber2019-12-112-69/+7
| | | | | | | Use self-contained condition variables instead of Classic API barriers. This simplifies the implementation and configuration. Update #3840.
* rtems: Simplify semaphore configurationSebastian Huber2019-12-111-1/+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.
* clock: Simplify driver initializationSebastian Huber2019-12-112-3/+4
| | | | | | Use a system initialization handler instead of a legacy IO driver. Update #3834.
* libtest: Change expected pass state stringSebastian Huber2019-12-058-8/+8
| | | | Use separator character '_' for all test states.
* testsuites: Remove rtems_test_pause*()Sebastian Huber2019-12-0424-74/+3
| | | | | | | | | | | | | The rtems_test_pause() and rtems_test_pause_and_screen_number() macros had different implementations depending on the RTEMS_TEST_NO_PAUSE define. This define was defined to 1 by default. The user was able to change this via the undocumented --disable-test-no-pause configure command line option. Pausing tests and waiting for user input contradicts the goal of having automated test runs. Remove this feature. Update #3818.
* Move feature macro before "config.h" includeSebastian Huber2019-12-021-3/+3
| | | | | | | This allows to use header includes in "config.h" to reduce the build configuration checks. Update #3818.
* sptests: Avoid include path magicSebastian Huber2019-11-1222-84/+223
| | | | Update #3818.
* tests: Simplify fatal error test supportSebastian Huber2019-11-123-103/+61
| | | | | | Move system.h to shared init.c. Update #3818.
* sptests: Remove obsolete semaphore consume driverSebastian Huber2019-11-123-75/+1
| | | | | | This driver is no longer used by a test program. Update #3818.
* spfatal16: Remove obsolete test programSebastian Huber2019-11-124-64/+1
| | | | | The "TRrc" semaphore was removed in commit 2c12262f9a8fe7975556729f0574fab8d5a792f5.
* sptests: Avoid build system defined definesSebastian Huber2019-11-1225-980/+1010
| | | | Update #3818.
* tests: Remove superfluous SMPTESTS defineSebastian Huber2019-11-121-1/+1
| | | | Update #3818.
* rtems-5: Improve heap fatal error informationsebastian.huber2019-11-052-1/+2
| | | | Update #3806.
* score: Add RTEMS_DEFINE_GLOBAL_SYMBOL_IN_SECTION()Sebastian Huber2019-10-281-0/+7
| | | | Update #3799.
* score: Install timecounter according to qualitySebastian Huber2019-10-021-22/+79
| | | | | | This makes it possible to install higher quality timecounter in plug-and-play systems and helps to override the clock driver provided timecounter in some test scenarios.
* score: Remove strange timecounter init stepSebastian Huber2019-10-021-6/+6
| | | | | The double call of the timecounter get method was added to FreeBSD in 2002 without a comment. It is not clear why this is needed.
* score: Remove superfluous timecounter membersSebastian Huber2019-10-021-2/+2
|
* Add rtems_version_control_key_is_valid()Sebastian Huber2019-09-111-1/+7
|
* score: Add RTEMS_RETURN_ADDRESS()Sebastian Huber2019-08-281-1/+6
|
* score: Add _ISR_lock_Set_name()Sebastian Huber2019-04-121-5/+17
| | | | | Add _ISR_lock_Set_name() to optimize the initialization of zero-initialized locks.