[PATCH v5 0/8] tracing: Hist trigger snapshot and onchange additions

From: Tom Zanussi
Date: Mon Oct 01 2018 - 12:18:36 EST


From: Tom Zanussi <tom.zanussi@xxxxxxxxxxxxxxx>

Hi,

This is v5 of the hist trigger snapshot and onchange additions
patchset. It's the same as v4, but adds a test case for the new trace
syntax as suggested by Masami, and also adds a new test case for the
onchange addition.

v4->v5 changes:

- added 'trace' keyword test case
- added 'onchange' handler test case

v3->v4 changes:

- added 'trace' keyword for generating synthetic events
- fix elt_data leak
- changed cond_update to cond_update_fn_t

v2->v3 changes:

- fixed problem where trace actions were only being allowed for
onmatch handlers - now trace actions can be used with any handler.
- fixed problem where no action was being assigned to onmatch
handlers if save or snapshot actions were specified.

v1->v2 changes:

- added missing tracing_cond_snapshot_data() definition for when
CONFIG_TRACER_SNAPSHOT not defined
- removed an unnecessary WARN_ON() in track_data_snapshot_print()


Original text:

This patchset adds some useful new functions to the hist
trigger code: a snapshot action and an onchange handler.

In order to make it easier to add these and in the process make the
code more generic, I separated the code into explicit 'handlers' and
'actions', handlers being things like 'onmax' and 'onchange', and
'actions' being things like 'take a snapshot' or 'save some fields'.

The first few patches do that basic refactoring, which make it easier
to add the subsequent changes that arbitrarily combine actions and
handlers.

The fourth patch adds a 'conditional snapshot' capability that via a
new tracing_snaphot_cond() function extends the existing snapshot
code. It allows the caller to associate some user data with the
snapshot that can be checked and saved in an update() callback whose
return value determines whether the snapshot should be taken or not.

The remaining patches finally add the new snapshot action and onchange
handler functionality - please see those patches for details and some
examples.

Thanks,

Tom


The following changes since commit 5a5e3d3ceae2121590d67258a4e658d938b4a46d:

perf probe: Support SDT markers having reference counter (semaphore) (2018-09-24 04:44:54 -0400)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/zanussi/linux-trace.git ftrace/hist-snapshot-onchange-v5

Tom Zanussi (8):
tracing: Refactor hist trigger action code
tracing: Split up onmatch action data
tracing: Generalize hist trigger onmax and save action
tracing: Add conditional snapshot
tracing: Move hist trigger key printing into a separate function
tracing: Add snapshot action
tracing: Add hist trigger onchange() handler
trace: Add alternative synthetic event trace action syntax

Documentation/trace/histogram.rst | 226 +++++
kernel/trace/trace.c | 162 ++-
kernel/trace/trace.h | 56 +-
kernel/trace/trace_events_hist.c | 1062 +++++++++++++++-----
kernel/trace/trace_events_trigger.c | 2 +-
kernel/trace/trace_sched_wakeup.c | 2 +-
.../inter-event/trigger-onchange-action-hist.tc | 43 +
.../inter-event/trigger-onmatch-action-hist.tc | 13 +
8 files changed, 1280 insertions(+), 286 deletions(-)
create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onchange-action-hist.tc

--
2.14.1