mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Masami Hiramatsu (Google) <mhiramat@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Akanksha J N <akanksha@linux.ibm.com>,
	Masami Hiramatsu (Google) <mhiramat@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	linux-kernel@vger.kernel.org
Subject: [GIT PULL v2] probes: Update for v6.5
Date: Thu, 29 Jun 2023 10:13:16 +0900	[thread overview]
Message-ID: <20230629101316.d8eff69f9899f6c895ac64f5@kernel.org> (raw)

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@kernel.org>

             reply	other threads:[~2023-06-29  1:13 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-29  1:13 Masami Hiramatsu [this message]
2023-06-30 17:51 ` Linus Torvalds
2023-07-05 12:50   ` Masami Hiramatsu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230629101316.d8eff69f9899f6c895ac64f5@kernel.org \
    --to=mhiramat@kernel.org \
    --cc=akanksha@linux.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome