[GIT PULL] probes: Updates for 6.6

From: Google
Date: Fri Sep 01 2023 - 21:10:55 EST


Hi Linus,

Probes updates for v6.6:

- kprobes: use struct_size() for variable size kretprobe_instance
data structure.

- eprobe: Simplify trace_eprobe list iteration.

- probe events: Data structure field access support on BTF argument.
. Update BTF argument support on the functions in the kernel loadable
modules (only loaded modules are supported).
. Move generic BTF access function (search function prototype and get
function parameters) to a separated file.
. Add a function to search a member of data structure in BTF.
. Support accessing BTF data structure member from probe args by
C-like arrow('->') and dot('.') operators. e.g.
't sched_switch next=next->pid vruntime=next->se.vruntime'
. Support accessing BTF data structure member from $retval. e.g.
'f getname_flags%return +0($retval->name):string'
. Add string type checking if BTF type info is available.
This will reject if user specify ":string" type for non "char
pointer" type.
. Automatically assume the fprobe event as a function return event
if $retval is used.

- selftests/ftrace: Add BTF data field access test cases.

- Documentation: Update fprobe event example with BTF data field.


Please pull the latest probes-v6.6 tree, which can be found at:


git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
probes-v6.6

Tag SHA1: 4c8c72dd0aff704689952eb31931fefcb6337801
Head SHA1: a2439a4c90856b83657aec4600c19551aa9501ff


Chuang Wang (1):
tracing/eprobe: Iterate trace_eprobe directly

Masami Hiramatsu (Google) (9):
tracing/probes: Support BTF argument on module functions
tracing/probes: Move finding func-proto API and getting func-param API to trace_btf
tracing/probes: Add a function to search a member of a struct/union
tracing/probes: Support BTF based data structure field access
tracing/probes: Support BTF field access from $retval
tracing/probes: Add string type check with BTF
tracing/fprobe-event: Assume fprobe is a return event by $retval
selftests/ftrace: Add BTF fields access testcases
Documentation: tracing: Update fprobe event example with BTF field

Ruan Jinjie (1):
kernel: kprobes: Use struct_size()

----
Documentation/trace/fprobetrace.rst | 64 ++-
include/linux/btf.h | 1 +
kernel/bpf/btf.c | 2 +-
kernel/kprobes.c | 6 +-
kernel/trace/Makefile | 1 +
kernel/trace/trace.c | 3 +-
kernel/trace/trace_btf.c | 122 +++++
kernel/trace/trace_btf.h | 11 +
kernel/trace/trace_eprobe.c | 22 +-
kernel/trace/trace_fprobe.c | 59 ++-
kernel/trace/trace_kprobe.c | 1 +
kernel/trace/trace_probe.c | 499 +++++++++++++++------
kernel/trace/trace_probe.h | 27 +-
kernel/trace/trace_uprobe.c | 1 +
.../ftrace/test.d/dynevent/add_remove_btfarg.tc | 20 +
.../ftrace/test.d/dynevent/fprobe_syntax_errors.tc | 10 +-
16 files changed, 661 insertions(+), 188 deletions(-)
create mode 100644 kernel/trace/trace_btf.c
create mode 100644 kernel/trace/trace_btf.h

--
Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>