Capture Engine - Addition of capture task information to the capture buffer
Chris Johns
chrisj at rtems.org
Fri Sep 5 02:28:39 UTC 2014
On 5/09/2014 4:00 am, Joel Sherrill wrote:
> Piling on... most of the information in the capture engine's task
> control blocks can be logged statically on task create.
This should be done when the first reference to the task is logged. The
task may already exist.
> BUT... there is also trigger information
> in there. Where should that be now?
The current trigger information is design around the "task" because the
events are per task. We think we may need a different trigger mechanism
for a "function" based trace systems.
Are you intending to run the "user extension" and "function" tracing at
the same time ?
> Jennifer is plowing ahead logging variable length records and eliminating
> fields in the capture task control but we don't see how to get rid of
> all of it.
I feel we may need some data in the TCB yet I do not think we need all
the fields in current code.
In the first pass of "function" tracing I think a single bit per task
for any function called in the task's context to raise the trigger. This
means a global table of bits for all functions to control the function
specific trace and trigger control and then a bit per task for any
function triggered or traced (once triggered) to allow filtering by
task. We might get away with a single 32bit value (actually a
sizeof(void*)) in the TCB.
If the need for more memory grows the TCB value could be changed to a
pointer that reference a buffer taken from a private capture engine pool
of buffers created when it starts based on a user specified size. In
this case lack of buffers would simply log the error and user would need
to adjust the value.
Chris
More information about the devel
mailing list