summaryrefslogtreecommitdiffstats
path: root/testsuites/tmtests (follow)
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* 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/tmcontext01: New testSebastian Huber2014-02-287-0/+598
|
* tmtests: Add contents to multiple documentation filesCynthia Rempel2014-01-0929-60/+306
|
* tmtests: refactored timesys.h, removed declarationsDaniel Ramirez2013-12-0911-3/+21
|
* tmtests_plan.csv: New planning fileJoel Sherrill2013-12-071-0/+158
|
* tmoverhd/testtask.c: Fix output to be consistentJoel Sherrill2013-12-071-71/+71
|
* tmoverhd/empty.c: formattingJoel Sherrill2013-12-071-2/+1
|
* tm19: Clean up outputJoel Sherrill2013-12-071-2/+2
|
* timesys.h: Benchmark output now includes a dash for easier parsingJoel Sherrill2013-12-071-6/+10
|
* tmtests: Make output more uniformJoel Sherrill2013-12-0729-134/+136
|
* smp: Add and use _Assert_Owner_of_giant()Sebastian Huber2013-08-302-27/+87
| | | | | | | | | | | | | | 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-092-17/+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/tm27: Fixes for RTEMS_DEBUGSebastian Huber2013-08-011-0/+22
|
* tmtests/tm26: Fixes for RTEMS_DEBUGSebastian Huber2013-07-311-36/+100
|
* testsuites: Use _Thread_Get_executing()Sebastian Huber2013-07-221-0/+2
|
* 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.
* tmtests/tm20: Change allocation sizesSebastian Huber2013-06-251-3/+3
| | | | This avoids problems with debugging enabled.
* RTEMS: Delete ChangeLog files.Gedare Bloom2013-03-081-908/+0
| | | | | | | | | This commit deletes all RTEMS ChangeLog files. These files have been abandoned since converting to git version control. The historical data may be recovered by checking out any commit before this one. Most of the contents of these ChangeLog files can also be found in the git log. Two external ChangeLog files, ChangeLog.slac and ChangeLog.zlib, remain.
* tmoverhd.docCynthia Rempel2013-01-061-0/+75
| | | | | Hi, Adding test documentation...
* Revert "Add config.h.in."Gedare Bloom2012-08-061-22/+0
| | | | This reverts commit cf42a6ea9dbb6ebee498ae8db319d3e475bcd6be.