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.
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.
The catpture task record is now logged just prior to the first
log entry using that task instead of the first time the task
is seen. This involved splitting the record task method into
an initialize task and a record task.
This patch removes functionality for stack checking from
the capture engine and requiresi the use of existing rtems
functions for this information. It modifies ctload to use
functionality similar to rtems cpuusage. It removes the
capture task and stores a new capture task record the first
time the task is seen. The per task data that was still
needed is scaled down and stored in the tcb.
The capture did not work due to changes in the workspace allocator.
The engine now scans all existing tasks when enabled and does any
allocations then.
Fixed a bug in the ctset commandi in the CLI.
Updated the capture engine to use 64bit nanosec timestamps.
Fixed the CLI showing the stack usage.
Script does what is expected and tries to do it as
smartly as possible.
+ remove occurrences of two blank comment lines
next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
contain CVS Ids
+ If the processing left a blank line at the top of
a file, it was removed.
* libmisc/shell/shell.h: Added comments for the parameters to the
shell_init function.
* libmisc/shell/shell.c: Only set cflags if tcflags is
non-zero. This means the shell can use the current cflags settings
and the application does not need to know the baudrate etc.
* libmisc/capture/capture.h: Fix the comment.
* libmisc/capture/README: Minor copyright change.
* libmisc/capture/capture-cli.c, libmisc/capture/capture.c,
libmisc/capture/capture.h: Fixed the memory leak when lots of
tasks are being created and deleted. Improved the trigger
interface so all task type actions can be caught.