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