Provides a generic event state description structure (TraceEvent) and a more detailed event control and query interface.
This is achieved by creating a new "non-public" tracing backend (i.e., not selectable by the user at configure time) that will generate the appropriate event description information. Signed-off-by: Lluís Vilanova <vilan...@ac.upc.edu> --- Changes in v12: * Fix size of event identifier in the 'simple' backend when writing traces (patch by Stefan Hajnoczi). Changes in v11: * Rebase on a4bcea3 from master. Changes in v10: * Add suggestions by Stefan Hajnoczi: * Merge paths in 'do_trace_event_set_state'. * Add header guards in "trace/control-internal.h". * Remove TODO from docs in 'trace_print_events'. * Rename 'glob' in "trace/control.c" as 'pattern_glob'. * Implement 'trace_event_is_pattern' in terms of 'strchr'. Changes in v9: * Rebase on 7cd5da7 from master. * Change dynamic tracing state from monitor only in enabled events. * Assert dynamic tracing state changes are performed only on enabled events. * Split 'trace_event_set_state_dynamic' into a generic and a backend-specific part. Changes in v8: * Rebase on a2685bc from master. * Fixed typo in commit message for "trace: Provide a detailed event control interface". Changes in v7: * Rebase on a8a826a from master. * Moved compilation & code generation for "trace/" into a separate makefile. * Renamed targets and moved rules according to the new makefile structure. Changes in v6: * Fixed typos in the documentation of the 'TraceEvent' struct. Changes in v5: * Rebase on dbaf26b3 from master. * Always initialize temporary 'ev' in 'trace_backend_init_events'. * Make common sanity checks in 'trace_event_set_state_dynamic' and delay backend-specific code to 'trace_event_set_state_dynamic_backend'. Changes in v4: * Documentation fixes and (re)formatting. Changes in v3: * Add some assertions. * Remove debugging printf's. * Improve documentation. * Make 'trace_event_get_state_static' use run-time information, and leave TRACE_*_ENABLED for compile-time checks. Changes in v2: * Minor compilation fixes. Lluís Vilanova (7): trace: [tracetool] Explicitly identify public backends trace: Provide a generic tracing event descriptor trace: Provide a detailed event control interface trace: [monitor] Use new event control interface trace: [default] Port to generic event information and new control interface trace: [simple] Port to generic event information and new control interface trace: [stderr] Port to generic event information and new control interface Makefile | 3 + docs/tracing.txt | 44 +++----- monitor.c | 13 ++ scripts/tracetool.py | 4 - scripts/tracetool/backend/__init__.py | 16 +++ scripts/tracetool/backend/dtrace.py | 3 + scripts/tracetool/backend/events.py | 23 ++++ scripts/tracetool/backend/simple.py | 22 ++-- scripts/tracetool/backend/stderr.py | 28 ++--- scripts/tracetool/backend/ust.py | 3 + scripts/tracetool/format/events_c.py | 39 +++++++ scripts/tracetool/format/events_h.py | 50 +++++++++ scripts/tracetool/format/h.py | 9 -- trace/Makefile.objs | 24 ++++ trace/control-internal.h | 67 ++++++++++++ trace/control.c | 106 ++++++++++++++++-- trace/control.h | 190 ++++++++++++++++++++++++++++++--- trace/default.c | 5 - trace/event-internal.h | 33 ++++++ trace/simple.c | 35 +----- trace/simple.h | 6 - trace/stderr.c | 34 +----- trace/stderr.h | 11 -- 23 files changed, 590 insertions(+), 178 deletions(-) create mode 100644 scripts/tracetool/backend/events.py create mode 100644 scripts/tracetool/format/events_c.py create mode 100644 scripts/tracetool/format/events_h.py create mode 100644 trace/control-internal.h create mode 100644 trace/event-internal.h delete mode 100644 trace/stderr.h To: qemu-devel@nongnu.org Cc: Stefan Hajnoczi <stefa...@gmail.com> Cc: Blue Swirl <blauwir...@gmail.com>