mbox series

[v4,0/3] trace-cruncher: ftrace uprobes support

Message ID 20220628121621.572506-1-tz.stoyanov@gmail.com (mailing list archive)
Headers show
Series trace-cruncher: ftrace uprobes support | expand

Message

Tzvetomir Stoyanov (VMware) June 28, 2022, 12:16 p.m. UTC
Ftrace uprobes can be used to create dynamic events for user functions.
Tracing user function can be very useful functionality for trace-cruncher.

Known issues, that will be addressed with subsequent patch sets, before the
next trace-cruncher release:
 - Improve the logic for ctrl-c handling and interrupting the trace.
 - Improve the logic for monitoring target PIDs - stop the trace when target
   process exits.
 - Implement unit tests.

v4 changes:
 - Removed accepted patches from the patch set.

v3 changes:
 - Implemented logic for finding the full application name in the C code.
 - Renamed a few internal functions and variable with more specific names.
 - Coding style fixes.

v2 changes:
 - Moved the uprobe C code into the ftrace-utils.c file.
 - Reused internal functions from ftrace-util code.
 - Renamed utrace start and stop to enable and disable, to be consistent
   with the other APIs.
 - Do not call utrace disable in the urtace example, as this logic is
   triggered by the destructor.
 - Changed the logic for allocation of internal dynamic array - double the
   array size on each reallocation, instead of increasing the size with
   hard-coded constant.
 - Added support for running a program with arguments for tracing.
 - Do not run the program for tracing in a separate shell.
 - Coding style fixes and optimizations.

Tzvetomir Stoyanov (VMware) (3):
  trace-cruncher: ftrace uprobe raw API
  trace-cruncher: High level wrappers for ftrace uprobes
  trace-cruncher: Example script for uprobes high level API

 examples/user_trace.py |  39 +++
 setup.py               |   4 +-
 src/ftracepy-utils.c   | 746 +++++++++++++++++++++++++++++++++++++++++
 src/ftracepy-utils.h   |  21 ++
 src/ftracepy.c         |  45 +++
 5 files changed, 853 insertions(+), 2 deletions(-)
 create mode 100755 examples/user_trace.py