On Mon, Nov 18, 2024 at 02:53:38PM -0800, Ian Rogers wrote:
> 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.
>
> v5. Add perf env fixed found by Namhyung.
> v4. Rebase due to conflict with 9ac98662dbd3 ("perf: event: Remove deadcode")
> v3. Whitespace changes, Arnaldo.
> v2. Add additional error checking/handling in evsel__tp_format.
>
> Ian Rogers (7):
> perf env: Ensure failure broken topology file reads are always -1
> encoded
> 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
Reviewed-by: Namhyung Kim <namhyung@kernel.org>
Thanks,
Namhyung
>
> tools/lib/api/fs/fs.c | 6 +-
> tools/perf/builtin-kmem.c | 12 +-
> tools/perf/builtin-kwork.c | 3 +-
> tools/perf/builtin-record.c | 2 -
> tools/perf/builtin-script.c | 9 +-
> tools/perf/builtin-trace.c | 79 +++++++++----
> 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/env.c | 9 +-
> 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 | 2 +-
> tools/perf/util/trace-event-scripting.c | 10 +-
> tools/perf/util/trace-event.h | 2 +-
> 24 files changed, 220 insertions(+), 149 deletions(-)
>
> --
> 2.47.0.338.g60cca15819-goog
>