[PATCH 0/1] tools: perf: Expose sample ID / stream ID to python scripts

From: Ben Gainey
Date: Tue Jan 23 2024 - 05:32:15 EST


This patch modifies the perf python scripting engine so that the ID and
STREAM_ID are exposed as part of the sample so that they may be
correlated to the corresponding throttle/unthrottle event (for example).

NB: For scripts where perf_db_export_mode = True, this may be a breaking
change depending on how the script is constructed. Each field is passed
to `sample_table` as an argument so any script that is written as:

def sample_table(db_id, evsel_id, machine_id, ..., cyc_cnt, flags)

will now fail due to the changed number of arguments with:

TypeError: sample_table() takes 25 positional arguments but 27 were given

Scripts that use:

def sample_table(*args)

or some variation thereof will not be affected.

When `perf_db_export_mode = False`, the script should be unaffected as
all the arguments are inserted into a dictionary.

The export-to-xxx.py scripts use the (..., *x) form so are not affected.


Ben Gainey (1):
tools: perf: Expose sample ID / stream ID to python scripts

tools/perf/Documentation/perf-script-python.txt | 4 ++--
tools/perf/util/scripting-engines/trace-event-python.c | 8 +++++++-
2 files changed, 9 insertions(+), 3 deletions(-)

--
2.43.0