summaryrefslogtreecommitdiffstats
path: root/testsuites/tmtests/tm26 (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Do not define CONFIGURE_TICKS_PER_TIMESLICE to 0Sebastian Huber2024-03-201-1/+0
| | | | | | | Unconditionally make a CONFIGURE_TICKS_PER_TIMESLICE value less than or equal to zero an error. Update #4986.
* testsuites/tmtests/tm[23]*: Change license to BSD-2Joel Sherrill2022-04-121-3/+22
| | | | Updates #3053.
* testsuites/tmtests/*: Change license to BSD-2Joel Sherrill2022-04-073-9/+66
| | | | Updates #3053.
* config: Remove <rtems/btimer.h> includeSebastian Huber2020-03-041-0/+1
| | | | | | | The use of CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER does not define anything, so remove the <rtems/btimer.h> include. Update #3875.
* testsuite: Make the OPERATION_COUNT a test configuration parameter.Chris Johns2019-03-071-0/+4
| | | | | - Add a small memory test config file. - Update the small memory PowerPC BSPs to use the new test config.
* tests: Use rtems_task_exit()Sebastian Huber2018-10-051-2/+1
| | | | Update #3533.
* tm26: enable FP context when fprintf usedDaniel Hellstrom2018-09-201-0/+1
| | | | | calling rtems_print_printer_fprintf_putc() results in usage of vfprintf() which may use floating point instructions in its implementation.
* testsuite/tmtests: Merged nested Makefile.am files into one Makefile.amChris Johns2018-04-101-24/+0
| | | | | | This change is part of the testsuite Makefile.am reorganization. Update #3382
* tests: Support %g print format specifierSebastian Huber2018-02-091-0/+1
|
* Remove coverhd.hSebastian Huber2017-11-242-2/+0
| | | | | | | This header file contained timing overhead values which are hard to maintain. Update #3254.
* tests: Use simple console driverSebastian Huber2017-11-061-1/+1
| | | | | Update #3170. Update #3199.
* tests: Remove TEST_INITSebastian Huber2017-10-281-2/+0
| | | | | | | | The TEST_EXTERN is a used only by the system.h style tests and they use CONFIGURE_INIT appropriately. Update #3170. Update #3199.
* testsuite: Use printk for all test output where possible.Chris Johns2017-10-231-0/+2
| | | | | | | | | | - Remove the printf support leaving the direct printk support configured with TESTS_USE_PRINTK and all other output goes via a buffered vsniprintf call to printk. - Control the test's single init for functions and global data with TEST_INIT and not CONFIGURE_INIT. They are now separate. Updates #3170.
* score: Prevent assignment to _Thread_ExecutingSebastian Huber2016-11-071-11/+1
|
* score: Introduce Thread_Scheduler_control::homeSebastian Huber2016-11-021-4/+4
| | | | | | | | Replace Thread_Scheduler_control::control and Thread_Scheduler_control::own_control with new Thread_Scheduler_control::home. Update #2556.
* score: Introduce Thread_queue_Lock_contextSebastian Huber2016-09-081-1/+1
| | | | | | Introduce Thread_queue_Lock_context to contain the context necessary for thread queue lock and thread wait lock acquire/release operations to reduce the Thread_Control size.
* score: Add _Thread_queue_Context_set_MP_callout()Sebastian Huber2016-05-301-1/+1
| | | | | | Add _Thread_queue_Context_set_MP_callout() to simplify _Thread_queue_Context_initialize(). This makes it possible to more easily add additional fields to Thread_queue_Context.
* score: Move thread queue MP callout to contextSebastian Huber2016-05-251-5/+6
| | | | | | | | Drop the multiprocessing (MP) dependent callout parameter from the thread queue extract, dequeue, flush and unblock methods. Merge this parameter with the lock context into new structure Thread_queue_Context. This helps to gets rid of the conditionally compiled method call helpers.
* Replace *_Get_interrupt_disable() with *_Get()Sebastian Huber2016-05-201-9/+6
| | | | | Uniformly use *_Get() to get an object by identifier with a lock context.
* rtems: _Semaphore_Get_interrupt_disable()Sebastian Huber2016-05-201-3/+0
| | | | | | Use _Objects_Get_local() for _Semaphore_Get_interrupt_disable() to get rid of the location parameter. Move remote object handling to semaphore MPCI support.
* score: Rename _ISR_Flash() into _ISR_Local_flash()Sebastian Huber2016-05-201-1/+1
| | | | | | This is a preparation to remove the Giant lock. Update #2555.
* score: Rename _ISR_Disable() and _ISR_Enable()Sebastian Huber2016-05-201-2/+2
| | | | | | | | | Rename _ISR_Disable() into _ISR_Local_disable(). Rename _ISR_Enable() into _ISR_Local_enable(). Remove _Debug_Is_owner_of_giant(). This is a preparation to remove the Giant lock. Update #2555.
* score: Rename _ISR_Disable_without_giant()Sebastian Huber2016-05-201-6/+6
| | | | | | | | | Rename _ISR_Disable_without_giant() into _ISR_Local_disable(). Rename _ISR_Enable_without_giant() into _ISR_Local_enable(). This is a preparation to remove the Giant lock. Update #2555.
* testsuites: Avoid Giant lockSebastian Huber2016-05-201-83/+15
| | | | | | | | | Replace _Thread_Disable_dispatch() with _Thread_Dispatch_disable(). Replace _Thread_Enable_dispatch() with _Thread_Dispatch_enable(). This is a preparation to remove the Giant lock. Update #2555.
* testsuites: Replace _Thread_Get()Sebastian Huber2016-05-201-11/+14
| | | | | | | Replace _Thread_Get() with _Thread_Get_interrupt_disable() to avoid the Giant lock. Update #2555.
* score: Avoid Giant lock for _Thread_Start()Sebastian Huber2016-05-201-3/+3
| | | | Update #2555.
* rtems: Avoid Giant lock for semaphoresSebastian Huber2016-05-021-3/+11
| | | | Update #2555.
* rtems: Add rtems_interrupt_local_disable|enable()Sebastian Huber2015-06-221-2/+7
| | | | | | | | Add rtems_interrupt_local_disable|enable() as suggested by Pavel Pisa to emphasize that interrupts are only disabled on the current processor. Do not define the rtems_interrupt_disable|enable|flash() macros and functions on SMP configurations since they don't ensure system wide mutual exclusion.
* tmtests/tm26: Fix context switch to FP taskSebastian Huber2015-05-291-3/+0
| | | | | | | It is wrong to restore the floating point context here. The _Context_Switch() ends up in _Thread_Handler() which will call _Thread_Restore_fp(). In _Thread_Do_dispatch() the FP restore is after the context switch.
* Revert "tmtests/tm26: Avoid NULL pointer access"Sebastian Huber2015-05-291-0/+3
| | | | | | | There is no NULL pointer access. Please note that _Thread_Get_executing() != executing variable in Low_task(). This reverts commit 5611839a7e2e371dd1f327c336c785095f634e55.
* tmtests/tm26: Avoid NULL pointer accessSebastian Huber2015-05-291-3/+0
|
* rtems: Atomically suspend/resume tasksSebastian Huber2015-04-081-1/+1
|
* score: Add and use _Thread_Do_dispatch()Sebastian Huber2015-03-051-0/+4
| | | | | | | | | | | | The _Thread_Dispatch() function is quite complex and the time to set up and tear down the stack frame is significant. Split this function into two parts. The complex part is now in _Thread_Do_dispatch(). Call _Thread_Do_dispatch() in _Thread_Enable_dispatch() only if necessary. This increases the average case performance. Simplify _Thread_Handler() for SMP configurations. Update #2273.
* score: Implement forced thread migrationSebastian Huber2014-05-071-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Static scheduler configurationSebastian Huber2014-04-151-14/+17
| | | | | | Do not allocate the scheduler control structures from the workspace. This is a preparation step for configuration of clustered/partitioned schedulers on SMP.
* score: Add scheduler control to scheduler opsSebastian Huber2014-04-041-4/+8
| | | | | Scheduler operations must be free of a global scheduler context to enable partitioned/clustered scheduling.
* score: Move priority bit map to scheduler instanceSebastian Huber2014-04-031-18/+13
| | | | | | Delete global variables _Priority_Major_bit_map and _Priority_Bit_map. This makes it possible to use multiple priority scheduler instances for example with clustered/partitioned scheduling on SMP.
* tmtests: convert to test.hbjorn larsson2014-03-251-3/+5
|
* Change all references of rtems.com to rtems.org.Chris Johns2014-03-214-4/+4
|
* score: Delete _Thread_Dispatch_set_disable_level()Sebastian Huber2014-03-061-1/+3
| | | | | This function was only used in some tests and can be replaced with other functions.
* tmtests/tm26: Fix deadlock for SMP configurationsSebastian Huber2014-03-061-1/+2
| | | | | Some _Context_Switch() invocations end up in _Thread_Handler(). Create the right context for this function.
* tmtests: Add contents to multiple documentation filesCynthia Rempel2014-01-091-2/+21
|
* tmtests: Make output more uniformJoel Sherrill2013-12-071-25/+28
|
* smp: Add and use _Assert_Owner_of_giant()Sebastian Huber2013-08-301-25/+85
| | | | | | | | | | | | | | Add and use _ISR_Disable_without_giant() and _ISR_Enable_without_giant() if RTEMS_SMP is defined. On single processor systems the ISR disable/enable was the big hammer which ensured system-wide mutual exclusion. On SMP configurations this no longer works since other processors do not care about disabled interrupts on this processor and continue to execute freely. On SMP in addition to ISR disable/enable an SMP lock must be used. Currently we have only the Giant lock so we can check easily that ISR disable/enable is used only in the right context.
* score: Per-CPU thread dispatch disable levelSebastian Huber2013-08-091-15/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a per-CPU thread dispatch disable level. So instead of one global thread dispatch disable level we have now one instance per processor. This is a major performance improvement for SMP. On non-SMP configurations this may simplifiy the interrupt entry/exit code. The giant lock is still present, but it is now decoupled from the thread dispatching in _Thread_Dispatch(), _Thread_Handler(), _Thread_Restart_self() and the interrupt entry/exit. Access to the giant lock is now available via _Giant_Acquire() and _Giant_Release(). The giant lock is still implicitly acquired via _Thread_Dispatch_decrement_disable_level(). The giant lock is only acquired for high-level operations in interrupt handlers (e.g. release of a semaphore, sending of an event). As a side-effect this change fixes the lost thread dispatch necessary indication bug in _Thread_Dispatch(). A per-CPU thread dispatch disable level greatly simplifies the SMP support for the interrupt entry/exit code since no spin locks have to be acquired in this area. It is only necessary to get the current processor index and use this to calculate the address of the own per-CPU control. This reduces the interrupt latency considerably. All elements for the interrupt entry/exit code are now part of the Per_CPU_Control structure: thread dispatch disable level, ISR nest level and thread dispatch necessary. Nothing else is required (except CPU port specific stuff like on SPARC).
* tmtests/tm26: Fixes for RTEMS_DEBUGSebastian Huber2013-07-311-36/+100
|
* rtems: Create semaphore implementation headerSebastian Huber2013-07-181-0/+1
| | | | | | Move implementation specific parts of sem.h and sem.inl into new header file semimpl.h. The sem.h contains now only the application visible API.
* Remove All CVS Id Strings Possible Using a ScriptJoel Sherrill2012-05-115-13/+0
| | | | | | | | | | | | Script does what is expected and tries to do it as smartly as possible. + remove occurrences of two blank comment lines next to each other after Id string line removed. + remove entire comment blocks which only exited to contain CVS Ids + If the processing left a blank line at the top of a file, it was removed.
* Revert: Remove CVS IdsJoel Sherrill2012-05-071-0/+5
| | | | | See http://www.rtems.org/pipermail/rtems-devel/2012-May/001006.html for details.
* Remove CVS-Ids.Ralf Corsépius2012-05-041-5/+0
|