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
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to