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