summaryrefslogtreecommitdiffstats
path: root/testsuites/smptests (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Add an SMP sequence lock implementationSebastian Huber2016-06-092-24/+342
|
* smptests/smpatomic01: Fix seqlock writeSebastian Huber2016-06-081-1/+3
|
* smptests/smpatomic01: Add seqlock test caseSebastian Huber2016-06-072-0/+235
|
* smptests/smpatomic01: New test casesSebastian Huber2016-06-012-18/+349
| | | | | Demonstrate that a read-modify-write atomic operation may be necessary on some archtitectures to observe the latest value written.
* cpukit, testsuite: Add rtems_printf and rtems_printer support.Chris Johns2016-05-257-26/+36
| | | | | | | | | | | | | | | | | | | This change adds rtems_printf and related functions and wraps the RTEMS print plugin support into a user API. All references to the plugin are removed and replaced with the rtems_printer interface. Printk and related functions are made to return a valid number of characters formatted and output. The function attribute to check printf functions has been added to rtems_printf and printk. No changes to remove warrnings are part of this patch set. The testsuite has been moved over to the rtems_printer. The testsuite has a mix of rtems_printer access and direct print control via the tmacros.h header file. The support for begink/endk has been removed as it served no purpose and only confused the code base. The testsuite has not been refactored to use rtems_printf. This is future work.
* Replace *_Get_interrupt_disable() with *_Get()Sebastian Huber2016-05-202-2/+2
| | | | | Uniformly use *_Get() to get an object by identifier with a lock context.
* score: Remove the Giant lockSebastian Huber2016-05-206-186/+0
| | | | Update #2555.
* score: Rename _ISR_Disable_without_giant()Sebastian Huber2016-05-203-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-205-19/+22
| | | | | | | | | 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-202-8/+8
| | | | | | | Replace _Thread_Get() with _Thread_Get_interrupt_disable() to avoid the Giant lock. Update #2555.
* score: Add Thread_Change_life()Sebastian Huber2016-05-201-1/+1
| | | | | | | | | Add _Thread_Change_life_locked() as a general function to alter the thread life state. Use it to implement _Thread_Set_life_protection() as a first step. Update #2555. Update #2626.
* SMP: Add Mellor-Crummey and Scott (MCS) lockSebastian Huber2016-05-191-14/+159
| | | | | | | | | | Added only for evaluation purposes. We have to compare the performance against the ticket lock on the interesting platforms via smptests/smplock01. The following GCC shortcoming affects the MCS lock: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66867
* smptests/smpcapture02: Adjust for clock changesSebastian Huber2016-05-121-8/+8
| | | | | | | Fix overall clock tick count. Change introduced by 90d8567d34a6d80da04b1cb37b667a3173f584c4. Update #2554.
* score: Use thread state lock for current stateSebastian Huber2016-05-121-16/+40
| | | | | | | In addition protect scheduler of thread by thread state lock. Enables use of scheduler per-instance locks. Update #2555.
* score: Add dummy Strong APA schedulerSebastian Huber2016-05-026-0/+88
| | | | | | Start with a copy of the Priority SMP scheduler implementation. Update #2510.
* score: Replace watchdog handler implementationSebastian Huber2016-03-047-32/+433
| | | | | | | | | Use a red-black tree instead of delta chains. Close #2344. Update #2554. Update #2555. Close #2606.
* score: Add _SMP_Online_processorsSebastian Huber2016-03-041-0/+10
|
* smptests/smpmrsp01: Fix test contextSebastian Huber2016-03-031-1/+1
|
* smptests/smpwakeafter01: Add scheduler configSebastian Huber2016-02-172-0/+67
| | | | Update #2554.
* smptests/README: Delete obsolete informationSebastian Huber2016-01-111-5/+0
|
* Delete CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEMSebastian Huber2015-10-151-2/+0
| | | | This define accidentally re-appeared.
* SMP: Fix and optimize thread dispatchingSebastian Huber2015-09-281-1/+2
| | | | | | | | According to the C11 and C++11 memory models only a read-modify-write operation guarantees that we read the last value written in modification order. Avoid the sequential consistent thread fence and instead use the inter-processor interrupt to set the thread dispatch necessary indicator.
* score: Use uintptr_t for atomic pointer operationsSebastian Huber2015-09-262-16/+0
| | | | Do not obfuscate the standard API.
* score: Implement priority boostingSebastian Huber2015-09-041-5/+56
|
* score: Implement SMP-specific priority queueSebastian Huber2015-09-046-0/+363
|
* smptests/smpscheduler02: Reduce required CPU countSebastian Huber2015-06-031-41/+50
|
* smptests/smpmrsp01: Reduce required CPU countSebastian Huber2015-06-031-8/+13
|
* smptests/smpscheduler03: Use proper lockSebastian Huber2015-06-031-9/+9
|
* smptests/smpscheduler03: RestructureSebastian Huber2015-05-191-41/+42
| | | | Restructure to avoid large maximum thread dispatch disabled times.
* score: Rework _Thread_Change_priority()Sebastian Huber2015-05-191-19/+43
| | | | | | | | | | | | | Move the writes to Thread_Control::current_priority and Thread_Control::real_priority into _Thread_Change_priority() under the protection of the thread lock. Add a filter function to _Thread_Change_priority() to enable specialized variants. Avoid race conditions during a thread priority restore with the new Thread_Control::priority_restore_hint for an important average case optimizations used by priority inheritance mutexes. Update #2273.
* smptests/smpcache01: RestructureSebastian Huber2015-05-152-109/+105
| | | | Restructure to avoid large maximum thread dispatch disabled times.
* score: Fix scheduler helping protocolSebastian Huber2015-05-112-250/+478
| | | | | | Account for priority changes of threads executing in a foreign partition. Exchange idle threads in case a victim node uses an idle thread and the new scheduled node needs an idle thread.
* smptests/smpcache01: Enable interrupts before waiting for other CPUsDaniel Cederman2015-04-221-2/+2
| | | | | Otherwise there is a risk that a CPU misses a cache manager message from another CPU and the test hangs.
* score: Refactor SMP cache manager supportSebastian Huber2015-04-201-17/+6
|
* smpmigration01: Delete timing dependent assertSebastian Huber2015-03-251-3/+6
| | | | | | The cycles per runner depends too heavily on the hardware timing making the assert unreliable. Delete runner tasks before we print out the status.
* smptests/smpfatal08: Workaround for QorIQ BSPsSebastian Huber2015-03-241-0/+8
|
* testsupport: Add worker setup handlerSebastian Huber2015-03-171-11/+24
| | | | Add rtems_test_parallel_get_task_id().
* testsupport: Add cascade option to parallel testAlexander Krutwig2015-03-061-30/+60
|
* tests: Refactor parallel test executionAlexander Krutwig2015-03-051-147/+140
|
* smptests/smpcapture01: Avoid livelock conditionSebastian Huber2015-03-042-41/+54
|
* smptests: Do not use Giant directlySebastian Huber2015-03-042-6/+6
| | | | | This ensures that thread dispatching is disabled. A Giant acquire/release pair must take place in the same processor.
* score: Make <rtems/score/atomic.h> availableSebastian Huber2015-02-192-207/+0
| | | | | | | | Make <rtems/score/atomic.h> available for all RTEMS configurations. Use inline functions instead of macros. Use ISR disable/enable on uni-processor configurations to ensure atomicity. Update #2273.
* score: Add _CPU_SMP_Prepare_start_multitasking()Sebastian Huber2015-02-171-7/+5
| | | | Update #2268.
* smpcapture02: Add test of functionality to add custom entries to capture traceDaniel Cederman2015-02-116-0/+478
|
* smptests/smpmrsp01: Fix task delete race conditionSebastian Huber2015-01-141-2/+3
| | | | | | | | Do not supsend self while waiting for termination since the rtems_task_delete() may take place while the rtems_task_suspend() waits for the Giant lock preventing delivery of the inter-processor interrupt. The result is a suspended and terminated thread (this is a valid state, but leads in this case to a test failure).
* smptests/smpwakeafter01: Fix task countSebastian Huber2015-01-091-1/+1
|
* smptests/smpmrsp01: Update run indicator only onceSebastian Huber2015-01-091-1/+3
| | | | | On the Freescale T2080 the excessive concurrent write/read lead to a livelock condition.
* smp: Fix timeout for MrsP semaphoresSebastian Huber2014-12-182-32/+93
| | | | | | | | The previous timeout handling was flawed. In case a waiting thread helped out the owner could use the scheduler node indefinitely long. Update the resource tree in _MRSP_Timeout() to avoid this issue. Bug reported by Luca Bonato.
* Update bug report URLSebastian Huber2014-12-051-1/+1
|
* smptests/smpmrsp01: Use busy waitsSebastian Huber2014-11-271-18/+20
| | | | | Use busy waits instead of sleeps to avoid unnecessary switches to the idle thread.