| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Rename CONFIGURE_SMP_MAXIMUM_PROCESSORS to CONFIGURE_MAXIMUM_PROCESSORS
since the SMP part is superfluous.
Update #2894.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Only register ask for help requests in the scheduler unblock and yield
operations. The actual ask for help operation is carried out during
_Thread_Do_dispatch() on a processor related to the thread. This yields
a better separation of scheduler instances. A thread of one scheduler
instance should not be forced to carry out too much work for threads on
other scheduler instances.
Update #2556.
|
|
|
|
|
|
| |
Enable the SMP support if CONFIGURE_SMP_MAXIMUM_PROCESSORS > 1.
Update #2893.
|
|
|
|
| |
Close #2751.
|
| |
|
|
|
|
| |
Update #2825.
|
| |
|
| |
|
|
|
|
| |
Update #2811.
|
|
|
|
|
|
|
|
| |
Initialize thread queue context early preferably outside the critical
section.
Remove implicit _Thread_queue_Context_initialize() from
_Thread_Wait_acquire().
|
|
|
|
|
| |
Initialize the thread queue context with invalid data in debug
configurations to catch missing set up steps.
|
|
|
|
|
|
| |
Avoid use of internal _Thread_Dispatch_disable() function.
Update #2825.
|
|
|
|
|
|
|
|
|
|
|
|
| |
On SMP configurations, it is a fatal error to call blocking operating
system with interrupts disabled, since this prevents delivery of
inter-processor interrupts. This could lead to executing threads which
are not allowed to execute resulting in undefined behaviour.
The ARM Cortex-M port has a similar problem, since the interrupt state
is not a part of the thread context.
Update #2811.
|
|
|
|
| |
Cache align locks in the context.
|
|
|
|
| |
Set scheduler before the task start.
|
|
|
|
| |
Update #2811.
|
|
|
|
|
|
|
|
| |
Add _CPU_Get_current_per_CPU_control() on SMP configurations. Use SPRG0
for the current per-CPU control. This reduces the code size by three
instructions and is slightly faster.
Update #2805.
|
|
|
|
| |
Update #2797.
|
|
|
|
|
|
|
|
|
|
| |
Avoid dead code in non-SMP configurations. Return scheduler identifier
independent of the current processor count of the scheduler via
rtems_scheduler_ident(), since this value may change during run-time.
Check the processor count in _Scheduler_Set() under scheduler lock
protection.
Update #2797.
|
|
|
|
|
|
|
|
|
| |
The SMP ticket lock release turned out to be suitable for inlining, e.g.
a hand full of instructions, no branches.
The changes in the screen files do not reflect the changes due to this
commit. However, they are now up to date. Obtained on a T4240 running
at 1.5GHz using GCC 7.0.0 20161108..
|
|
|
|
|
|
| |
No longer unconditionally prevent scheduler changes if the thread owns
resources. Prevent a scheduler change only in case other threads wait
for the resource.
|
| |
|
|
|
|
| |
Update #2556.
|
|
|
|
|
|
|
|
| |
Replace Thread_Scheduler_control::control and
Thread_Scheduler_control::own_control with new
Thread_Scheduler_control::home.
Update #2556.
|
|
|
|
| |
Update #2556.
|
|
|
|
| |
Remove unused return status.
|
|
|
|
| |
Update #2556.
|
|
|
|
| |
Update #2556.
|
|
|
|
| |
Update #2556.
|
|
|
|
|
|
| |
Changed for consistency with other scheduler operations.
Update #2556.
|
|
|
|
|
|
| |
Changed for consistency with other scheduler operations.
Update #2556.
|
|
|
|
|
|
| |
Changed for consistency with other scheduler operations.
Update #2556.
|
|
|
|
|
|
|
| |
This enables to call this scheduler operation for all scheduler nodes
available to a thread.
Update #2556.
|
|
|
|
| |
Convert output to XML.
|
| |
|
|
|
|
|
|
|
|
| |
Maintain the priority of a thread for each scheduler instance via the
thread queue enqueue, extract, priority actions and surrender
operations. This replaces the primitive priority boosting.
Update #2556.
|
|
|
|
|
| |
Update #2556.
Update #2784.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add priority nodes which contribute to the overall thread priority.
The actual priority of a thread is now an aggregation of priority nodes.
The thread priority aggregation for the home scheduler instance of a
thread consists of at least one priority node, which is normally the
real priority of the thread. The locking protocols (e.g. priority
ceiling and priority inheritance), rate-monotonic period objects and the
POSIX sporadic server add, change and remove priority nodes.
A thread changes its priority now immediately, e.g. priority changes are
not deferred until the thread releases its last resource.
Replace the _Thread_Change_priority() function with
* _Thread_Priority_perform_actions(),
* _Thread_Priority_add(),
* _Thread_Priority_remove(),
* _Thread_Priority_change(), and
* _Thread_Priority_update().
Update #2412.
Update #2556.
|
|
|
|
| |
Avoid direct access to thread internal data fields.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patches some issues with the capture engine:
1. Check is the engine is open in ctrace commands.
2. Check all record open and appends for overflow.
3. Fix the record open to take the size of user data and
not the record header.
4. Use packed structs for data being written to the per
cpu buffers.
5. Remove direct struct access to the capture buffers to
avoid misaligned accesses.
6. Add support to extract records, no struct access to the
capture buffers.
7. Update ctrace to extract records from the capture buffers.
8. Add support to ctrace to always print the task name if it
has one.
9. Add support to manage names or the lack of a name.
10. Range of minor fixes.
11. Fix a long standing bug in ctset's handling of args.
Closes #2780.
|
|
|
|
| |
Update #2765.
|
|
|
|
|
| |
This enables fatal extensions to continue program execution after some
fatal errors.
|
|
|
|
|
|
|
|
|
|
|
| |
Task priorities are only valid within a scheduler instance. The
rtems_task_set_scheduler() directive moves a task from one scheduler
instance to another using the current priority of the thread. However,
the current task priority of the source scheduler instance is undefined
in the target scheduler instance. Add a third parameter to specify the
priority.
Close #2749.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
A 32-bit Priority_Control limits the uptime to 49 days with a 1ms clock
tick in case the EDF scheduler is used. Increase it to 64-bit to enable
proper operation of the EDF scheduler,
Close 2173.
|
|
|
|
|
|
|
| |
Commit 77ff5599e0d8e6d91190a379be21a332f83252b0 introduced a change in
the rtems_semaphore_create() behaviour for MrsP semaphores. The ceiling
priorities for all schedulers except the scheduler of the executing
thread are initialized to zero.
|