summaryrefslogtreecommitdiffstats
path: root/testsuites/tmtests (follow)
Commit message (Collapse)AuthorAgeFilesLines
* 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-202-8/+8
| | | | | | | | | 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-202-85/+17
| | | | | | | | | 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.
* score: Use thread state lock for current stateSebastian Huber2016-05-121-5/+13
| | | | | | | In addition protect scheduler of thread by thread state lock. Enables use of scheduler per-instance locks. Update #2555.
* rtems: Avoid Giant lock for semaphoresSebastian Huber2016-05-021-3/+11
| | | | Update #2555.
* Obsolete rtems_clock_get() directive.Joel Sherrill2016-04-142-6/+5
| | | | | | | This service was marked as deprecated long prior to the 4.11 release series and is now being removed. closes #2676.
* score: Replace watchdog handler implementationSebastian Huber2016-03-041-45/+45
| | | | | | | | | Use a red-black tree instead of delta chains. Close #2344. Update #2554. Update #2555. Close #2606.
* tmtests/tmtimer01: New testSebastian Huber2016-03-027-0/+408
| | | | | | | Test run performed on T4240 running at 1667MHz in uni-processor configuration. Update #2554.
* api: Remove deprecated NotepadsAun-Ali Zaidi2015-12-247-94/+1
| | | | | | | | | | | | | | | | | | | | | | | Notepads where a feature of RTEMS' tasks that simply functioned in the same way as POSIX keys or threaded local storage (TLS). They were introduced well before per task variables, which are also deprecated, and were barely used in favor of their POSIX alternatives. In addition to their scarce usage, Notepads took up unnecessary memory. For each task: - 16 32-bit integers were allocated. - A total of 64 bytes per task per thread. This is especially critical in low memory and safety-critical applications. They are also defined as uint32_t, and therefore are not guaranteed to hold a pointer. Lastly, they are not portable solutions for SMP and uniprocessor systems, like POSIX keys and TLS. updates #2493.
* basdefs.h: Add and use RTEMS_UNUSEDSebastian Huber2015-10-261-1/+1
|
* Delete CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEMSebastian Huber2015-10-151-2/+0
| | | | This define accidentally re-appeared.
* 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/tm27: Use scheduler lockSebastian Huber2015-06-191-10/+5
|
* 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
|
* tests misc: Disable deprecated method usage warning when intentionalJoel Sherrill2015-03-171-25/+37
| | | | | These tests intentionally use the deprecated method. Eventually this code in the sections can be deleted.
* testsupport: Add worker setup handlerSebastian Huber2015-03-171-1/+1
| | | | Add rtems_test_parallel_get_task_id().
* tmtests/tmfine01: New testSebastian Huber2015-03-166-0/+2612
|
* cpukit: deprecate notepadsGedare Bloom2015-03-101-0/+2
| | | | | | | | | | | | | | | Deprecate Classic API Notepads. Mark task_set/get_note() with the deprecated attribute, and also mark the notepads field. Replace disable with enable option for notepads in confdefs.h, and make notepads disabled by default. The previous option CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS is now unused and will emit a compile-time warning. A new option CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS is available to turn on notepads, but it also will emit a compile-time warning to indicate that notepads are deprecated. Closes #2265
* 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: Update _Thread_Heir only if necessarySebastian Huber2015-03-051-0/+3
| | | | | | | | | | | | | | | | | | | | Previously, the _Thread_Heir was updated unconditionally in case a new heir was determined. The _Thread_Dispatch_necessary was only updated in case the executing thread was preemptible or an internal thread was unblocked. Change this to update the _Thread_Heir and _Thread_Dispatch_necessary only in case the currently selected heir thread is preemptible or a dispatch is forced. Move the schedule decision into the change priority operation and use the schedule operation only in rtems_task_mode() in case preemption is enabled or an ASR dispatch is necessary. This is a behaviour change. Previously, the RTEMS_NO_PREEMPT also prevented signal delivery in certain cases (not always). Now, signal delivery is no longer influenced by RTEMS_NO_PREEMPT. Since the currently selected heir thread is used to determine if a new heir is chosen, non-preemptible heir threads currently not executing now prevent a new heir. This may have an application impact, see change test tm04. Document this change in sp04. Update #2273.
* tests: Fix warningsSebastian Huber2015-03-051-1/+1
|
* Update bug report URLSebastian Huber2014-12-051-1/+1
|
* tmtests/tmcontext01: Improve cache dirty functionSebastian Huber2014-09-111-14/+24
| | | | Increment by cache line size to allow more cycles per second.
* tmtests/tmcontext01: Improve cache dirty functionSebastian Huber2014-09-081-4/+7
|
* tmtests/tmcontext01: Plot a legendSebastian Huber2014-09-051-6/+20
|
* Enhance Semaphore Blocking and Readying Time Test CasesJoel Sherrill2014-07-1421-171/+477
| | | | | | | | | | | | | | | | tm02 and tm03 were modified to be reused for multiple configurations of RTEMS Classic API Semaphores. This added tm31-36. The messages for tm02 and tm03 were modified to indicate the semaphore attributes. tm31 - tm36 were added. This resulted in the following cases: tm02 - rtems_semaphore_obtain: Counting/FIFO not available caller blocks tm03 - rtems_semaphore_release: Counting/FIFO task readied preempts caller tm31 - rtems_semaphore_obtain: Counting/priority not available caller blocks tm32 - rtems_semaphore_release: Counting/priority task readied preempts caller tm33 - rtems_semaphore_obtain: Binary/FIFO not available caller blocks tm34 - rtems_semaphore_release: Binary/FIFO task readied preempts caller tm35 - rtems_semaphore_obtain: Binary/priority not available caller blocks tm36 - rtems_semaphore_release: Binary/priority task readied preempts caller
* 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.
* testsuite: Add a per BSP test check for tests not to build.Chris Johns2014-05-051-3/+3
| | | | | | | | Provide a file per BSP to list tests that do not build for a BSP. This change removes the BSP_SMALL_MEMORY hack from the code. That hack was a mistake. Provide configuration files for each BSP with tests that cannot build.
* score: Static scheduler configurationSebastian Huber2014-04-152-22/+29
| | | | | | Do not allocate the scheduler control structures from the workspace. This is a preparation step for configuration of clustered/partitioned schedulers on SMP.
* rtems: Rename rtems_smp_get_processor_count()Sebastian Huber2014-04-111-1/+1
| | | | | | 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.
* tmtests/tm21: Fix configurationSebastian Huber2014-04-072-2/+4
|
* score: Add scheduler control to scheduler opsSebastian Huber2014-04-042-6/+12
| | | | | 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-032-24/+18
| | | | | | 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/tmcontext01: Use <rtems/test.h>Sebastian Huber2014-03-251-11/+5
|
* tmtests: convert to test.hbjorn larsson2014-03-2533-66/+132
|
* Change all references of rtems.com to rtems.org.Chris Johns2014-03-21101-101/+101
|
* score: Add SMP lock profiling supportSebastian Huber2014-03-141-1/+1
|
* score: Add function to destroy SMP locksSebastian Huber2014-03-111-1/+3
|
* score: Add local context to SMP lock APISebastian Huber2014-03-111-3/+3
| | | | | | | | | | | 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.
* score: Delete _Thread_Dispatch_set_disable_level()Sebastian Huber2014-03-062-9/+5
| | | | | This function was only used in some tests and can be replaced with other functions.