The tracepoint format isn't needed to open an event, just the id for
the config value. Refactor the use of evsel->tp_format to use an
accessor that will lazily construct its value. In evsel__newtp_idx
read the id so the config value can be set up/used.
This allows tracepoints to be used without libtraceevent in a number
of tests. Other functionality is enabled without libtracevent, such as
mapping a tracepoint id back to its name. There may be some
performance benefit to code using tracepoints but not using the format
information.
v2. Add additional error checking/handling in evsel__tp_format.
Ian Rogers (6):
tool api fs: Correctly encode errno for read/write open failures
perf trace-event: Constify print arguments
perf trace-event: Always build trace-event-info.c
perf evsel: Add/use accessor for tp_format
perf evsel: Allow evsel__newtp without libtraceevent
perf tests: Enable tests disabled due to tracepoint parsing
tools/lib/api/fs/fs.c | 6 +-
tools/perf/builtin-kmem.c | 15 ++-
tools/perf/builtin-kwork.c | 3 +-
tools/perf/builtin-record.c | 2 -
tools/perf/builtin-script.c | 9 +-
tools/perf/builtin-trace.c | 80 +++++++++----
tools/perf/tests/Build | 6 +-
tools/perf/tests/builtin-test.c | 2 -
tools/perf/tests/parse-events.c | 25 +---
tools/perf/util/Build | 2 +-
tools/perf/util/data-convert-bt.c | 10 +-
tools/perf/util/data-convert-json.c | 8 +-
tools/perf/util/evsel.c | 110 +++++++++++++-----
tools/perf/util/evsel.h | 9 +-
tools/perf/util/evsel_fprintf.c | 4 +-
tools/perf/util/parse-events.c | 16 +--
tools/perf/util/perf_event_attr_fprintf.c | 4 -
.../util/scripting-engines/trace-event-perl.c | 3 +-
.../scripting-engines/trace-event-python.c | 3 +-
tools/perf/util/sort.c | 33 ++++--
tools/perf/util/trace-event-parse.c | 4 +-
tools/perf/util/trace-event-scripting.c | 10 +-
tools/perf/util/trace-event.h | 4 +-
23 files changed, 219 insertions(+), 149 deletions(-)
--
2.47.0.199.ga7371fff76-goog