Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
Restructure to avoid large maximum thread dispatch disabled times.
|
|
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.
|
|
Restructure to avoid large maximum thread dispatch disabled times.
|
|
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.
|
|
Otherwise there is a risk that a CPU misses a cache manager message
from another CPU and the test hangs.
|
|
|
|
The cycles per runner depends too heavily on the hardware timing making
the assert unreliable. Delete runner tasks before we print out the
status.
|
|
|
|
Add rtems_test_parallel_get_task_id().
|
|
|
|
|
|
|
|
This ensures that thread dispatching is disabled. A Giant
acquire/release pair must take place in the same processor.
|
|
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.
|
|
Update #2268.
|
|
|
|
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).
|
|
|
|
On the Freescale T2080 the excessive concurrent write/read lead to a
livelock condition.
|
|
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.
|
|
|
|
Use busy waits instead of sleeps to avoid unnecessary switches to the
idle thread.
|
|
Ensure that scheduler nodes in the SCHEDULER_HELP_ACTIVE_OWNER or
SCHEDULER_HELP_ACTIVE_RIVAL helping state are always
SCHEDULER_SMP_NODE_READY or SCHEDULER_SMP_NODE_SCHEDULED to ensure the
MrsP protocol properties.
|
|
|
|
|
|
|
|
|
|
Added status validation.
|
|
|
|
|
|
|
|
New test case for smptests/smpmrsp01.
Fix _Scheduler_Block_node() in case the node is in the
SCHEDULER_HELP_ACTIVE_RIVAL helping state. For example a
rtems_task_suspend() on a task waiting for a MrsP semaphore.
Fix _Scheduler_Unblock_node() in case the node is in the
SCHEDULER_SMP_NODE_READY state. For example a rtems_task_resume() on a
task owning or waiting for a MrsP semaphore.
|
|
Change semaphore attributes to resolve problem where semaphore is not
released upon a context switch.
|
|
Change semaphore attributes to prevent semaphore from being
locked and never released upon a context switch.
|
|
Change semaphore attributes to prevent semaphore from being
locked and never released upon a context switch.
|
|
|
|
|
|
Call the test extension explicitly and wait for report output using a
barrier. This avoids problems with an early shutdown of the system.
|
|
Rely on test extension to report profiling.
|
|
Invalidation of entire data cache might cause data written to the stack
to get lost.
|
|
|
|
|
|
|
|
Invokes SMP cache management routines under different scenarios.
|
|
This test verifies priority is inherited from a high priority
semaphore by a lower priority task.
|
|
This test uses a combination of priority and affinity to cause
the tasks running on all 4 cores to change due to one task priority
change.
|