[for-next][PATCH 00/27] function_graph: Allow multiple users for v6.11

From: Steven Rostedt
Date: Tue Jun 04 2024 - 10:43:43 EST


git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
fgraph/for-next

Head SHA1: 8d4e21bd4cca8013d2c6f55d42df85838d4ebce6


Masami Hiramatsu (Google) (3):
function_graph: Handle tail calls for stack unwinding
function_graph: Use a simple LRU for fgraph_array index number
ftrace: Add multiple fgraph storage selftest

Steven Rostedt (Google) (9):
ftrace: Add subops logic to allow one ops to manage many
ftrace: Allow subops filtering to be modified
function_graph: Add pid tracing back to function graph tracer
function_graph: Use for_each_set_bit() in __ftrace_return_to_handler()
function_graph: Use bitmask to loop on fgraph entry
function_graph: Use static_call and branch to optimize entry function
function_graph: Use static_call and branch to optimize return function
selftests/ftrace: Add function_graph tracer to func-filter-pid test
selftests/ftrace: Add fgraph-multi.tc test

Steven Rostedt (VMware) (15):
function_graph: Convert ret_stack to a series of longs
fgraph: Use BUILD_BUG_ON() to make sure we have structures divisible by long
function_graph: Add an array structure that will allow multiple callbacks
function_graph: Allow multiple users to attach to function graph
function_graph: Remove logic around ftrace_graph_entry and return
ftrace/function_graph: Pass fgraph_ops to function graph callbacks
ftrace: Allow function_graph tracer to be enabled in instances
ftrace: Allow ftrace startup flags to exist without dynamic ftrace
function_graph: Have the instances use their own ftrace_ops for filtering
function_graph: Add "task variables" per task for fgraph_ops
function_graph: Move set_graph_function tests to shadow stack global var
function_graph: Move graph depth stored data to shadow stack global var
function_graph: Move graph notrace bit to shadow stack global var
function_graph: Implement fgraph_reserve_data() and fgraph_retrieve_data()
function_graph: Add selftest for passing local variables

----
include/linux/ftrace.h | 43 +-
include/linux/sched.h | 2 +-
include/linux/trace_recursion.h | 39 -
kernel/trace/fgraph.c | 1044 ++++++++++++++++----
kernel/trace/ftrace.c | 522 +++++++++-
kernel/trace/ftrace_internal.h | 5 +-
kernel/trace/trace.h | 94 +-
kernel/trace/trace_functions.c | 8 +
kernel/trace/trace_functions_graph.c | 96 +-
kernel/trace/trace_irqsoff.c | 10 +-
kernel/trace/trace_sched_wakeup.c | 10 +-
kernel/trace/trace_selftest.c | 259 ++++-
.../selftests/ftrace/test.d/ftrace/fgraph-multi.tc | 103 ++
.../ftrace/test.d/ftrace/func-filter-pid.tc | 27 +-
14 files changed, 1945 insertions(+), 317 deletions(-)
create mode 100644 tools/testing/selftests/ftrace/test.d/ftrace/fgraph-multi.tc