[GIT PULL] tracing: Updates for v5.1

From: Steven Rostedt
Date: Sun Mar 10 2019 - 23:40:36 EST


The biggest change for this release is in the histogram code.

- Add "onchange(var)" histogram handler that executes a action when $var

- Add new "snapshot()" action for histogram handlers, that causes a
snapshot of the ring buffer when triggered.
ie. onchange(var).snapshot() will trigger a snapshot if var changes.

- Add alternative for "trace()" action.
Currently, to trigger a synthetic event, the name of that event is used
as the handler name, which is inconsistent with the other actions.
onchange(var).synthetic(param) where it can now be
onchange(var).trace(synthetic, param). The older method will still be
allowed, as long as the synthetic events do not overlap with other
handler names.

- The histogram documentation at testcases were updated for the new

Added a quicker way to enable set_ftrace_filter files, that will make
it much quicker to bisect tracing a function that shouldn't be traced and
crashes the kernel. (You can echo in numbers to set_ftrace_filter, and it
will select the corresponding function that is in

Some better displaying of the tracing data (and more information was added).

The rest are small fixes and more clean ups to the code.

Please pull the latest trace-v5.1 tree, which can be found at:


Tag SHA1: 7560451df55a0e5dfacc2e6cf9e3602fbf9e22a9
Head SHA1: 85f726a35e504418607b77c5e7da165dc1ea63ce

Changbin Du (6):
function_graph: Support displaying relative timestamp
tracing: Show more info for funcgraph wakeup tracers
tracing: Put a margin between flags and duration for wakeup tracers
tracing/doc: Add latency tracer funcgraph example
tracing: Show stacktrace for wakeup tracers
tracing: Change the function format to display function names by perf

Colin Ian King (1):
tracing: Fix spelling mistake: "analagous" -> "analogous"

Elena Reshetova (1):
uprobes: convert uprobe.ref to refcount_t

Jann Horn (1):
tracing/perf: Use strndup_user() instead of buggy open-coded version

Mathieu Malaterre (2):
tracing: Annotate implicit fall through in parse_probe_arg()
tracing: Annotate implicit fall through in predicate_parse()

Miroslav Benes (1):
ring-buffer: Remove unused function ring_buffer_page_len()

Srikar Dronamraju (1):
doc: trace: Fix documentation for uprobe_profile

Steven Rostedt (VMware) (4):
tracing: Add comment to predicate_parse() about "&&" or "||"
ftrace: Allow enabling of filters via index of available_filter_functions
tracing: Comment why cond_snapshot is checked outside of max_lock protection
x86/ftrace: Fix warning and considate ftrace_jmp_replace() and ftrace_call_replace()

Tom Zanussi (19):
tracing: Refactor hist trigger action code
tracing: Make hist trigger Documentation better reflect actions/handlers
tracing: Split up onmatch action data
tracing: Generalize hist trigger onmax and save action
tracing: Add conditional snapshot
tracing: Add hist trigger snapshot() action
tracing: Add hist trigger snapshot() action Documentation
tracing: Add hist trigger onchange() handler
tracing: Add hist trigger onchange() handler Documentation
tracing: Add alternative synthetic event trace action syntax
tracing: Add SPDX license GPL-2.0 license identifier to inter-event testcases
tracing: Add hist trigger snapshot() action test case
tracing: Add hist trigger onchange() handler test case
tracing: Add alternative synthetic event trace action test case
tracing: Add hist trigger action 'expected fail' test case
tracing: Use str_has_prefix() in synth_event_create()
tracing: Use strncpy instead of memcpy for string keys in hist triggers
tracing: Use strncpy instead of memcpy when copying comm for hist triggers
tracing: Use strncpy instead of memcpy when copying comm in trace.c

zhangyi (F) (1):
tracing: Do not free iter->trace in fail path of tracing_open_pipe()

Documentation/trace/ftrace.rst | 89 ++
Documentation/trace/histogram.rst | 316 +++++-
Documentation/trace/uprobetracer.rst | 7 +-
arch/x86/kernel/ftrace.c | 42 +-
include/linux/ring_buffer.h | 2 -
kernel/events/uprobes.c | 8 +-
kernel/trace/ftrace.c | 30 +
kernel/trace/ring_buffer.c | 14 -
kernel/trace/trace.c | 223 ++++-
kernel/trace/trace.h | 66 +-
kernel/trace/trace_entries.h | 41 +-
kernel/trace/trace_event_perf.c | 16 +-
kernel/trace/trace_events_filter.c | 7 +
kernel/trace/trace_events_hist.c | 1059 ++++++++++++++------
kernel/trace/trace_functions_graph.c | 30 +-
kernel/trace/trace_irqsoff.c | 2 +-
kernel/trace/trace_probe.c | 1 +
kernel/trace/trace_sched_wakeup.c | 11 +-
.../inter-event/trigger-action-hist-xfail.tc | 30 +
.../inter-event/trigger-extended-error-support.tc | 1 +
.../inter-event/trigger-field-variable-support.tc | 1 +
.../trigger-inter-event-combined-hist.tc | 1 +
.../inter-event/trigger-multi-actions-accept.tc | 1 +
.../inter-event/trigger-onchange-action-hist.tc | 28 +
.../inter-event/trigger-onmatch-action-hist.tc | 1 +
.../trigger-onmatch-onmax-action-hist.tc | 1 +
.../inter-event/trigger-onmax-action-hist.tc | 1 +
.../inter-event/trigger-snapshot-action-hist.tc | 43 +
.../trigger-synthetic-event-createremove.tc | 1 +
.../inter-event/trigger-trace-action-hist.tc | 42 +
30 files changed, 1695 insertions(+), 420 deletions(-)
create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-action-hist-xfail.tc
create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onchange-action-hist.tc
create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-snapshot-action-hist.tc
create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-trace-action-hist.tc