mbox series

[v3,0/5] trace-cmd: SQL-like syntax for ftrace histograms configuration

Message ID 20200226163159.20232-1-tz.stoyanov@gmail.com (mailing list archive)
Headers show
Series trace-cmd: SQL-like syntax for ftrace histograms configuration | expand

Message

Tzvetomir Stoyanov (VMware) Feb. 26, 2020, 4:31 p.m. UTC
Configuration of complex ftrace histograms could be hard, using the existing ftrace interface.
The "--sql" option is implemented to simplify this task. It uses a sql-like syntax to define
the histograms and generates necessary ftrace syntetic events and triggers. Each ftrace event
represents a sql tible, while the fields of this event are rows in the table.

Few trace-cmd library APIs are introduced in this patch set, used in the
sql parser logic:
  in libtracefs: tracefs_instance_file_append()
  in libtraceevent: new flag to suppress parsing warnings

The patch set is based on Steven Rostedt's PoC implementation:
   https://github.com/rostedt/sqlhist

[
 v3 changes:
  - Do not allocate tep handler in sqlparser library, pass it as input
    parameter to sqlhist_parse() API. The tep handler, initialized with
    all required ftarce events must, be supplied by the API caller.
  - Add tep handler to common_record_context of trace-cmd record and
    similar commands. Add logic to initialize and destroy it.
  - Implemented new traceevent API to suppress parsing error while
    reading ftrace events.
 v2 changes:
  - Removed patches for trace-cmd reset sub command from this patch set, as
    they are not directly related to the SQL-like syntax implementation.
  - Fixed the use case with more than one "--sql" argument. Added logic to
    clean up the parser state before parsing a new string.
  - Implemented API for freeing all resources, allocated by the parser.
  - Fixed the use case with ftrace instances.
]

Tzvetomir Stoyanov (VMware) (5):
  trace-cmd: Add new libtracefs API tracefs_instance_file_append()
  trace-cmd: Unit test for tracefs_instance_file_append() API
  trace-cmd: Add new libtraceevent flag to suppress parsing warnings
  trace-cmd: Suppress parsing warnings in tracefs_local_events() API
  trace-cmd: Add "--sql" option to trace-cmd start and record sub
    commands

 Documentation/trace-cmd-record.1.txt |   37 +
 Makefile                             |    1 +
 include/traceevent/event-parse.h     |    2 +
 include/tracefs/tracefs.h            |    2 +
 lib/traceevent/event-parse.c         |    6 +-
 lib/tracefs/tracefs-events.c         |    2 +-
 lib/tracefs/tracefs-instance.c       |   53 +-
 tracecmd/Makefile                    |   12 +-
 tracecmd/include/trace-local.h       |    4 +
 tracecmd/sqlparser/Makefile          |   52 +
 tracecmd/sqlparser/sqlhist-api.h     |   29 +
 tracecmd/sqlparser/sqlhist-parse.c   | 1526 ++++++++++++++++++++++++++
 tracecmd/sqlparser/sqlhist.h         |   34 +
 tracecmd/sqlparser/sqlhist.l         |   59 +
 tracecmd/sqlparser/sqlhist.y         |  175 +++
 tracecmd/trace-record.c              |  142 ++-
 tracecmd/trace-usage.c               |    2 +
 utest/tracefs-utest.c                |  106 +-
 18 files changed, 2202 insertions(+), 42 deletions(-)
 create mode 100644 tracecmd/sqlparser/Makefile
 create mode 100644 tracecmd/sqlparser/sqlhist-api.h
 create mode 100644 tracecmd/sqlparser/sqlhist-parse.c
 create mode 100644 tracecmd/sqlparser/sqlhist.h
 create mode 100644 tracecmd/sqlparser/sqlhist.l
 create mode 100644 tracecmd/sqlparser/sqlhist.y