Commit Graph

159 Commits

Author SHA1 Message Date
Sebastian Huber
77c5ddd496 smptests/smpmrsp01: Fix task delete race condition
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).
2015-01-14 07:40:49 +01:00
Sebastian Huber
e7d175affb smptests/smpwakeafter01: Fix task count 2015-01-09 14:03:32 +01:00
Sebastian Huber
ad0743db07 smptests/smpmrsp01: Update run indicator only once
On the Freescale T2080 the excessive concurrent write/read lead to a
livelock condition.
2015-01-09 14:03:32 +01:00
Sebastian Huber
864d3475a5 smp: Fix timeout for MrsP semaphores
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.
2014-12-18 08:33:29 +01:00
Sebastian Huber
1207288022 Update bug report URL 2014-12-05 07:47:32 +01:00
Sebastian Huber
0ff1c29d96 smptests/smpmrsp01: Use busy waits
Use busy waits instead of sleeps to avoid unnecessary switches to the
idle thread.
2014-11-27 10:33:31 +01:00
Sebastian Huber
5bd822a779 smp: Fix scheduler helping protocol
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.
2014-11-27 10:33:31 +01:00
Jennifer Averett
39af57c3f7 smp09: Resolve missing prototype warning. 2014-11-25 14:44:59 -06:00
Jennifer Averett
6291e9627e smp07: Resolve missing prototype warning. 2014-11-25 14:44:59 -06:00
Jennifer Averett
2c474a056f smp05: Resolve missing prototype warning. 2014-11-25 14:44:59 -06:00
Jennifer Averett
441dc1c1ad smp02: Resolve unused method warnings. 2014-11-25 14:44:59 -06:00
Jennifer Averett
4375b3b660 smp03: Remove set but not used warning.
Added status validation.
2014-11-25 14:44:59 -06:00
Jennifer Averett
689cba286f smpschedsem01: Remove unused variable warning. 2014-11-25 14:44:59 -06:00
Jennifer Averett
15e371fe67 smpschedaffinity02: Remove unused prototype. 2014-11-25 14:44:59 -06:00
Jennifer Averett
44da98f08f smpcapture01: New test. 2014-11-24 14:04:54 -06:00
Luca Bonato
cceb19f4e5 smp: Fix scheduler helping protocol
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.
2014-11-24 08:01:15 +01:00
Jennifer Averett
db44590c1d smpschedaffinity05: Change semaphore attributes.
Change semaphore attributes to resolve problem where semaphore is not
released upon a context switch.
2014-11-20 13:47:03 -06:00
Jennifer Averett
1960dcb9b2 smpschedaffinity04: Change semaphore attributes.
Change semaphore attributes to prevent semaphore from being
locked and never released upon a context switch.
2014-11-20 13:47:03 -06:00
Jennifer Averett
bc95f81699 smpschedaffinity02: Change semaphore attributes.
Change semaphore attributes to prevent semaphore from being
locked and never released upon a context switch.
2014-11-20 13:47:03 -06:00
Sebastian Huber
d412e2f025 smptests/smpfatal03: Wait for end of test msg 2014-10-24 09:18:38 +02:00
Sebastian Huber
092b8c57e6 tests/smptests: Normal use of test extension 2014-10-24 07:21:51 +02:00
Sebastian Huber
17889b257c tests/smptests: Use barriers in smpfatal0{12}
Call the test extension explicitly and wait for report output using a
barrier.  This avoids problems with an early shutdown of the system.
2014-10-23 17:15:47 +02:00
Sebastian Huber
8f0a2c995b smptests/smpload01: Report profiling only once
Rely on test extension to report profiling.
2014-09-17 10:31:30 +02:00
Daniel Cederman
6e1206ab46 smptests/smpcache01: Remove invalidation of data cache lines from test
Invalidation of entire data cache might cause data written to the stack
to get lost.
2014-09-16 10:29:42 +02:00
Sebastian Huber
5689d723a8 smptests/smplock01: Update screen file 2014-09-01 16:12:42 +02:00
Sebastian Huber
4030cccfef tests: Add documentation 2014-09-01 11:01:04 +02:00
Sebastian Huber
c147a139c6 smptests/smpfatal08: Fix link error 2014-09-01 08:45:23 +02:00
Daniel Cederman
9a9ab85b45 smptests/smpcache01: Test the SMP cache manager
Invokes SMP cache management routines under different scenarios.
2014-08-22 13:10:59 +02:00
Jennifer Averett
247118bf51 smpschedsem01: new test.
This test verifies priority is inherited from a high priority
semaphore by a lower  priority task.
2014-07-11 10:12:48 -05:00
Jennifer Averett
7eb3fd4782 smpschedaffinity05: Add test for worst case migration for affintiy scheduler.
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.
2014-07-11 10:12:48 -05:00
Jennifer Averett
61d26f939d smpschedaffinity04: New test.
This test walks a secondary high prority task across
all the cores.
2014-07-11 10:12:48 -05:00
Jennifer Averett
28d6674966 smpschedaffinity03: New test.
This task walks the affinity of self across all the cores.
2014-07-11 10:12:48 -05:00
Jennifer Averett
0929306933 smpschedaffinity02: New test.
This test checks setting the affinity of a secondary task
on a two core system.
2014-07-11 10:12:48 -05:00
Jennifer Averett
d88b0e7fc8 smpschedaffinity01: New test.
This test verifies that affinity is honored when set prior to task start.
2014-07-11 10:12:47 -05:00
Sebastian Huber
27783f6ca8 score: Fix scheduler helping implementation
Do not extract the idle threads from the ready set so that there is
always a thread available for comparison.
2014-07-10 15:29:57 +02:00
Sebastian Huber
9f228beaa6 smptests/smpmrsp01: Add and update test cases 2014-07-09 10:05:21 +02:00
Sebastian Huber
8568341d69 score: Need for help indicator for scheduler ops
Return a thread in need for help for the following scheduler operations

- unblock,
- change priority, and
- yield.

A thread in need for help is a thread that encounters a scheduler state
change from scheduled to ready or a thread that cannot be scheduled in
an unblock operation.  Such a thread can ask threads which depend on
resources owned by this thread for help.
2014-07-08 16:30:48 +02:00
Sebastian Huber
08d9760daf score: Rename *_Node_get() to *_Thread_get_node()
This emphasizes that the scheduler node of a thread is returned and this
is not a function working with scheduler nodes like the other *_Node_*()
functions.
2014-07-08 16:30:48 +02:00
Sebastian Huber
0b4ec4d74e smptests/smpfatal08: Support RTEMS_PARAVIRT 2014-06-30 12:30:12 +02:00
Sebastian Huber
b42e148587 smptests/smpmigration02: PR2183: Add test case 2014-06-24 09:53:11 +02:00
Sebastian Huber
a92989a8bd score: Fix thread deletion on SMP
Close the thread object in _Thread_Make_zombie() so that all blocking
operations that use _Thread_Get() in the corresponding release directive
can find a terminating thread and can complete the operation.
2014-06-23 09:54:05 +02:00
Sebastian Huber
2d36931823 score: Collect scheduler related fields in TCB
Add Thread_Scheduler_control to collect scheduler related fields of the
TCB.
2014-06-23 09:13:00 +02:00
Sebastian Huber
bd56356b58 smptests/smpwakeafter01: New test 2014-06-18 14:03:59 +02:00
Sebastian Huber
11947299a0 smptests: Avoid use of uninitialized data 2014-06-13 16:07:47 +02:00
Sebastian Huber
4962d24d62 smptests/smpscheduler03: Test all SMP schedulers 2014-06-12 10:02:10 +02:00
Sebastian Huber
2a2a16951e smptest/smpfatal03: Update due to API changes 2014-06-10 11:42:19 +02:00
Christian Mauderer
5abe5a8122 smptests/smpthreadlife01: Fix for debug enabled 2014-06-03 08:17:12 +02:00
Christian Mauderer
1ee0d5f719 smptests/smpmrsp01: Fix scheduler ids 2014-06-03 08:16:09 +02:00
Sebastian Huber
9553e7a60d score: Use Resource Handler for MrsP semaphores
This enables proper resource dependency tracking and as a side-effect
deadlock detection.
2014-06-03 08:15:16 +02:00
Sebastian Huber
25f5730fe5 score: _Scheduler_Set_affinity()
Do not change the scheduler with this function.  Documentation.  Coding
style.
2014-06-02 08:28:42 +02:00