Re: [GIT PULL] Probes update for v6.5

From: Google
Date: Wed Jun 28 2023 - 20:35:01 EST


Hi Linus,

Oops, I found the subject format was wrong. Let me resend it.

On Wed, 28 Jun 2023 00:58:18 +0900
Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> wrote:

> Hi Linus,
>
> Probes updates for v6.5:
>
> - fprobe: Pass return address to the fprobe entry/exit callbacks so that
> the callbacks don't need to analyze pt_regs/stack to find the function
> return address.
>
> - kprobe events: cleanup usage of TPARG_FL_FENTRY and TPARG_FL_RETURN
> flags so that those are not set at once.
>
> - fprobe events:
> . Add a new fprobe events for tracing arbitrary function entry and
> exit as a trace event.
> . Add a new tracepoint events for tracing raw tracepoint as a trace
> event. This allows user to trace non user-exposed tracepoints.
> . Move eprobe's event parser code into probe event common file.
> . Introduce BTF (BPF type format) support to kernel probe (kprobe,
> fprobe and tracepoint probe) events so that user can specify traced
> function arguments by name. This also applies the type of argument
> when fetching the argument.
> . Introduce '$arg*' wildcard support if BTF is available. This expands
> the '$arg*' meta argument to all function argument automatically.
> . Check the return value types by BTF. If the function returns 'void',
> '$retval' is rejected.
> . Add some selftest script for fprobe events, tracepoint events and
> BTF support.
> . Update documentation about the fprobe events.
> . Some fixes for above features, document and selftests.
>
> - selftests for ftrace (except for new fprobe events):
> . Add a test case for multiple consecutive probes in a function which
> checks if ftrace based kprobe, optimized kprobe and normal kprobe
> can be defined in the same target function.
> . Add a test case for optimized probe, which checks whether kprobe
> can be optimized or not.
>
>
> Please pull the latest probes-v6.5 tree, which can be found at:
>
>
> git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
> probes-v6.5
>
> Tag SHA1: 08bb7e2de7f32619cd100419e719ef96d6cf0aab
> Head SHA1: 53431798f4bb60d214ae1ec4a79eefdd414f577b
>
>
> Akanksha J N (2):
> selftests/ftrace: Add new test case which adds multiple consecutive probes in a function
> selftests/ftrace: Add new test case which checks for optimized probes
>
> Masami Hiramatsu (Google) (15):
> fprobe: Pass return address to the handlers
> tracing/probes: Avoid setting TPARG_FL_FENTRY and TPARG_FL_RETURN
> tracing/probes: Add fprobe events for tracing function entry and exit.
> selftests/ftrace: Add fprobe related testcases
> tracing/probes: Add tracepoint support on fprobe_events
> tracing/probes: Move event parameter fetching code to common parser
> tracing/probes: Support function parameters if BTF is available
> tracing/probes: Add $arg* meta argument for all function args
> tracing/probes: Add BTF retval type support
> selftests/ftrace: Add tracepoint probe test case
> selftests/ftrace: Add BTF arguments test cases
> Documentation: tracing/probes: Add fprobe event tracing document
> tracing/probes: Fix to return NULL and keep using current argc
> Documentation: Fix typo of reference file name
> tracing/probes: Fix tracepoint event with $arg* to fetch correct argument
>
> ----
> Documentation/trace/fprobetrace.rst | 188 +++
> Documentation/trace/index.rst | 1 +
> Documentation/trace/kprobetrace.rst | 2 +
> include/linux/fprobe.h | 11 +-
> include/linux/rethook.h | 2 +-
> include/linux/trace_events.h | 3 +
> include/linux/tracepoint-defs.h | 1 +
> include/linux/tracepoint.h | 5 +
> kernel/kprobes.c | 1 +
> kernel/trace/Kconfig | 26 +
> kernel/trace/Makefile | 1 +
> kernel/trace/bpf_trace.c | 6 +-
> kernel/trace/fprobe.c | 17 +-
> kernel/trace/rethook.c | 3 +-
> kernel/trace/trace.c | 13 +-
> kernel/trace/trace.h Linus,
>
> Probes updates for v6.5:
>
> - fprobe: Pass return address to the fprobe entry/exit callbacks so that
> the callbacks don't need to analyze pt_regs/stack to find the function
> return address.
>
> - kprobe events: cleanup usage of TPARG_FL_FENTRY and TPARG_FL_RETURN
> flags so that those are not set at once.
>
> - fprobe events:
> . Add a new fprobe events for tracing arbitrary function entry and
> exit as a trace event.
> . Add a new tracepoint events for tracing raw tracepoint as a trace
> event. This allows user to trace non user-exposed tracepoints.
> . Move eprobe's event parser code into probe event common file.
> . Introduce BTF (BPF type format) support to kernel probe (kprobe,
> fprobe and tracepoint probe) events so that user can specify traced
> function arguments by name. This also applies the type of argument
> when fetching the argument.
> . Introduce '$arg*' wildcard support if BTF is available. This expands
> the '$arg*' meta argument to all function argument automatically.
> . Check the return value types by BTF. If the function returns 'void',
> '$retval' is rejected.
> . Add some selftest script for fprobe events, tracepoint events and
> BTF support.
> . Update documentation about the fprobe events.
> . Some fixes for above features, document and selftests.
>
> - selftests for ftrace (except for new fprobe events):
> . Add a test case for multiple consecutive probes in a function which
> checks if ftrace based kprobe, optimized kprobe and normal kprobe
> can be defined in the same target function.
> . Add a test case for optimized probe, which checks whether kprobe
> can be optimized or not.
>
>
> Please pull the latest probes-v6.5 tree, which can be found at:
>
>
> git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
> probes-v6.5
>
> Tag SHA1: 08bb7e2de7f32619cd100419e719ef96d6cf0aab
> Head SHA1: 53431798f4bb60d214ae1ec4a79eefdd414f577b
>
>
> Akanksha J N (2):
> selftests/ftrace: Add new test case which adds multiple consecutive probes in a function
> selftests/ftrace: Add new test case which checks for optimized probes
>
> Masami Hiramatsu (Google) (15):
> fprobe: Pass return address to the handlers
> tracing/probes: Avoid setting TPARG_FL_FENTRY and TPARG_FL_RETURN
> tracing/probes: Add fprobe events for tracing function entry and exit.
> selftests/ftrace: Add fprobe related testcases
> tracing/probes: Add tracepoint support on fprobe_events
> tracing/probes: Move event parameter fetching code to common parser
> tracing/probes: Support function parameters if BTF is available
> tracing/probes: Add $arg* meta argument for all function args
> tracing/probes: Add BTF retval type support
> selftests/ftrace: Add tracepoint probe test case
> selftests/ftrace: Add BTF arguments test cases
> Documentation: tracing/probes: Add fprobe event tracing document
> tracing/probes: Fix to return NULL and keep using current argc
> Documentation: Fix typo of reference file name
> tracing/probes: Fix tracepoint event with $arg* to fetch correct argument
>
> ----
> Documentation/trace/fprobetrace.rst | 188 +++
> Documentation/trace/index.rst | 1 +
> Documentation/trace/kprobetrace.rst | 2 +
> include/linux/fprobe.h | 11 +-
> include/linux/rethook.h | 2 +-
> include/linux/trace_events.h | 3 +
> include/linux/tracepoint-defs.h | 1 +
> include/linux/tracepoint.h | 5 +
> kernel/kprobes.c | 1 +
> kernel/trace/Kconfig | 26 +
> kernel/trace/Makefile | 1 +
> kernel/trace/bpf_trace.c | 6 +-
> kernel/trace/fprobe.c | 17 +-
> kernel/trace/rethook.c | 3 +-
> kernel/trace/trace.c | 13 +-
> kernel/trace/trace.h | 11 +
> kernel/trace/trace_eprobe.c | 44 +-
> kernel/trace/trace_fprobe.c | 1199 ++++++++++++++++++++
> kernel/trace/trace_kprobe.c | 35 +-
> kernel/trace/trace_probe.c | 659 +++++++++--
> kernel/trace/trace_probe.h | 49 +-
> kernel/trace/trace_uprobe.c | 8 +-
> lib/test_fprobe.c | 10 +-
> samples/fprobe/fprobe_example.c | 6 +-
> .../ftrace/test.d/dynevent/add_remove_btfarg.tc | 58 +
> .../ftrace/test.d/dynevent/add_remove_fprobe.tc | 26 +
> .../ftrace/test.d/dynevent/add_remove_tprobe.tc | 27 +
> .../ftrace/test.d/dynevent/fprobe_syntax_errors.tc | 111 ++
> .../ftrace/test.d/dynevent/tprobe_syntax_errors.tc | 82 ++
> .../ftrace/test.d/kprobe/kprobe_insn_boundary.tc | 19 +
> .../ftrace/test.d/kprobe/kprobe_opt_types.tc | 34 +
> .../ftrace/test.d/kprobe/kprobe_syntax_errors.tc | 16 +-
> 32 files changed, 2510 insertions(+), 164 deletions(-)
> create mode 100644 Documentation/trace/fprobetrace.rst
> create mode 100644 kernel/trace/trace_fprobe.c
> create mode 100644 tools/testing/selftests/ftrace/test.d/dynevent/add_remove_btfarg.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/dynevent/add_remove_fprobe.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/dynevent/add_remove_tprobe.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/dynevent/fprobe_syntax_errors.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/dynevent/tprobe_syntax_errors.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_insn_boundary.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_opt_types.tc | 11 +
> kernel/trace/trace_eprobe.c | 44 +-
> kernel/trace/trace_fprobe.c | 1199 ++++++++++++++++++++
> kernel/trace/trace_kprobe.c | 35 +-
> kernel/trace/trace_probe.c | 659 +++++++++--
> kernel/trace/trace_probe.h | 49 +-
> kernel/trace/trace_uprobe.c | 8 +-
> lib/test_fprobe.c | 10 +-
> samples/fprobe/fprobe_example.c | 6 +-
> .../ftrace/test.d/dynevent/add_remove_btfarg.tc | 58 +
> .../ftrace/test.d/dynevent/add_remove_fprobe.tc | 26 +
> .../ftrace/test.d/dynevent/add_remove_tprobe.tc | 27 +
> .../ftrace/test.d/dynevent/fprobe_syntax_errors.tc | 111 ++
> .../ftrace/test.d/dynevent/tprobe_syntax_errors.tc | 82 ++
> .../ftrace/test.d/kprobe/kprobe_insn_boundary.tc | 19 +
> .../ftrace/test.d/kprobe/kprobe_opt_types.tc | 34 +
> .../ftrace/test.d/kprobe/kprobe_syntax_errors.tc | 16 +-
> 32 files changed, 2510 insertions(+), 164 deletions(-)
> create mode 100644 Documentation/trace/fprobetrace.rst
> create mode 100644 kernel/trace/trace_fprobe.c
> create mode 100644 tools/testing/selftests/ftrace/test.d/dynevent/add_remove_btfarg.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/dynevent/add_remove_fprobe.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/dynevent/add_remove_tprobe.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/dynevent/fprobe_syntax_errors.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/dynevent/tprobe_syntax_errors.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_insn_boundary.tc
> create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_opt_types.tc
>
> --
> Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>


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