| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Use thread wait flags for synchronization. The enqueue operation is now
part of the initial critical section. This is the key change and
enables fine grained locking on SMP for objects using a thread queue
like semaphores and message queues.
Update #2273.
|
|
|
|
|
|
|
|
| |
Replace the Thread_Priority_control with more general
Thread_queue_Operations which will be used for generic priority change,
timeout, signal and wait queue operations in the future.
Update #2273.
|
|
|
|
|
|
|
| |
Add a thread wait timeout code. Replace _Event_Timeout() with a general
purpose _Thread_Timeout() watchdog handler.
Update #2273.
|
|
|
|
|
|
|
|
|
|
| |
Merge THREAD_WAIT_STATE_SATISFIED, THREAD_WAIT_STATE_TIMEOUT,
THREAD_WAIT_STATE_INTERRUPT_SATISFIED, and
THREAD_WAIT_STATE_INTERRUPT_TIMEOUT into one state
THREAD_WAIT_STATE_READY_AGAIN. This helps to write generic routines to
block a thread.
Update #2273.
|
|
|
|
|
|
|
|
| |
Use mostly the standard watchdog operations. Use a system event for
synchronization. This implementation is simpler and offers better SMP
performance.
Close #2131.
|
|
|
|
|
|
|
|
|
|
| |
Rewrite the _Watchdog_Insert(), _Watchdog_Remove() and
_Watchdog_Tickle() functions to use iterator items to synchronize
concurrent operations. This makes it possible to get rid of the global
variables _Watchdog_Sync_level and _Watchdog_Sync_count which are a
blocking point for scalable SMP solutions.
Update #2307.
|
|
|
|
|
|
|
|
| |
Add watchdog header parameter to _Watchdog_Remove() to be in line with
the other operations. Add _Watchdog_Remove_ticks() and
_Watchdog_Remove_seconds() for convenience.
Update #2307.
|
|
|
|
|
| |
Remove thread queue parameter from _Thread_queue_Extract() since the
current thread queue is stored in the thread control block.
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Avoid collision with <sys/param.h> defined PAGE_SIZE.
|
|
|
|
|
|
|
| |
There may be a way to reduce the memory requirements but it
will require time to ensure the math is right and it passes
on all targets. At the current time, it fails on 22 BSPs which
run on simulators.
|
|
|
|
|
| |
Use a parameter for _Thread_queue_Enqueue() instead to reduce memory
usage.
|
|
|
|
|
| |
Otherwise there is a risk that a CPU misses a cache manager message
from another CPU and the test hangs.
|
|
|
|
|
|
|
|
|
|
| |
Remove _Thread_Acquire() and _Thread_Acquire_for_executing(). Add
utility functions for the default thread lock. Use the default thread
lock for the RTEMS events. There is no need to disable thread
dispatching and a Giant acquire in _Event_Timeout() since this was
already done by the caller.
Update #2273.
|
| |
|
| |
|
| |
|
|
|
|
| |
This helps on slow simulators.
|
|
|
|
|
| |
Update the current time before the watchdog adjust so that timer
routines observe the new time.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The Allocator Mutex should not be locked outside a tested
service call. In an SMP test or heavily multithreaded test,
this is possible since another thread could have the lock
for an extended period of time but this is not the norm
for the tests.
updates 2319.
|
|
|
|
|
|
|
| |
This type is intended to encapsulate all state to manage a watchdog
chain.
Update #2307.
|
| |
|
|
|
|
| |
Close #2317.
|
|
|
|
|
|
| |
This file contains the list of interrupt critical section tests.
There are some simulators these are unreliable on so they should
just be ignored.
|
|
|
|
| |
Adds future compatibility with strict monontonic software timestamps.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
The cycles per runner depends too heavily on the hardware timing making
the assert unreliable. Delete runner tasks before we print out the
status.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Since the thread current priority change and thread queue requeue is
performed in one critical section it is possible to simplify the thread
queue requeue procedure. Add a thread queue agnostic thread priority
change handler so that we are able to use alternative thread queue
implementations.
Update #2273.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This was checked on sparc/sis. If this fails on other targets, then
the task stack sizes needs to be reevaluated.
|
|
|
|
| |
integer overflow
|
| |
|
| |
|