The major differences are:

- Different trace data format between the accumulated data in the memory and 
/dev/tracer output
   It is because to reduce the trace data size in the memory. The accumulated 
data contains packed (not aligned) values and
   task is recorded by its PID, not the name. The correspondence between PID 
and task name string is hold in the separated task name buffer.
   On the other hand, the output from /dev/tracer contains aligned words and 
contains the task name string for each trace entries.
   It is because easy to handle the data by the application code (nsh trace 
command).

That is a trivial difference and there are some misconceptions.

The structures can be packed by simply adding the packed attribute to the structures.  That does not justify a redesign.

The current implementation does *not* use the task name, it uses the pid.  The task name is provided only when the task is created.  The provides the associated between pid and name. Thereafter only the pid is uses.

Your implementation has two much overlap and should not come upstream as a separate implementation.  Extensions and improvements to the existing implementation are welcome, however.

Greg

Reply via email to