[PATCH v2 0/5] perf script python: Provide sample dict to all handlers

From: Arun Kalyanasundaram
Date: Fri Jul 21 2017 - 18:04:38 EST


v2: - Add sample_read struct to the dict (in 3/5).
- Increase reference count of callchain in process tracepoint to
avoid unnecessary garbage collection (in 4/5).

The process_event python hook receives a dict with most perf_sample entries.

Other handlers (e.g. trace_unhandled, python_process_tracepoint) predate the introduction of this dict and do not receive it. This patch series adds the dict to all handlers, aiming to unify the information passed to them.

This change adds an additional argument to the affected handlers. To keep backwards compatibility (and avoid unnecessary work), do not pass the aforementioned dict if the number of arguments signals that handler version predates this change.

In addition, provide time_enabled, time_running and counter value in the perf_sample dict.

Initial Discussion: https://lkml.org/lkml/2017/7/1/108

Arun Kalyanasundaram (5):
perf script python: Allocate memory only if handler exists
perf script python: Refactor creation of perf sample dict
perf script python: Add sample_read to dict
perf script python: Add perf_sample dict to tracepoint handlers
perf script python: Generate hooks with additional argument

.../util/scripting-engines/trace-event-python.c | 246 +++++++++++++++------
1 file changed, 184 insertions(+), 62 deletions(-)

--
2.14.0.rc0.284.gd933b75aa4-goog