mbox series

[v5,0/9] tracing: Improbe BTF support on probe events

Message ID 169137686814.271367.11218568219311636206.stgit@devnote2 (mailing list archive)
Headers show
Series tracing: Improbe BTF support on probe events | expand

Message

Masami Hiramatsu (Google) Aug. 7, 2023, 2:54 a.m. UTC
Hi,

Here is the 5th version of series to improve the BTF support on probe events.
The previous series is here:

https://lore.kernel.org/all/169078860386.173706.3091034523220945605.stgit@devnote2/

This version introduces kernel/trace/trace_btf.c to separate the btf generic
functions. These functions will be moved to btf.c next merge window.
This fixes the member-search function to return the bit-offset of the
parent anonymous union/structure. Thus the caller can calculate the real
bit-offset from the root data structure.
This also fixes the ftrace selftest issue which fails if the kernel
supports only BTF args but not support field access.

This series can be applied on top of "probes/core" branch of
https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git/

You can also get this series from:

git://git.kernel.org/pub/scm/linux/kernel/git/mhiramat/linux.git topic/fprobe-event-ext

Thank you,

---

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


 Documentation/trace/fprobetrace.rst                |   64 ++-
 include/linux/btf.h                                |    1 
 kernel/bpf/btf.c                                   |    2 
 kernel/trace/Makefile                              |    1 
 kernel/trace/trace.c                               |    3 
 kernel/trace/trace_btf.c                           |  109 ++++
 kernel/trace/trace_btf.h                           |   11 
 kernel/trace/trace_eprobe.c                        |    4 
 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 
 15 files changed, 637 insertions(+), 175 deletions(-)
 create mode 100644 kernel/trace/trace_btf.c
 create mode 100644 kernel/trace/trace_btf.h

--
Masami Hiramatsu (Google) <mhiramat@kernel.org>

Comments

Masami Hiramatsu (Google) Aug. 21, 2023, 3:09 p.m. UTC | #1
Hi Steve,

Can you review this series?
I would like to push this to for-next.

Thank you,

On Mon,  7 Aug 2023 11:54:28 +0900
"Masami Hiramatsu (Google)" <mhiramat@kernel.org> wrote:

> Hi,
> 
> Here is the 5th version of series to improve the BTF support on probe events.
> The previous series is here:
> 
> https://lore.kernel.org/all/169078860386.173706.3091034523220945605.stgit@devnote2/
> 
> This version introduces kernel/trace/trace_btf.c to separate the btf generic
> functions. These functions will be moved to btf.c next merge window.
> This fixes the member-search function to return the bit-offset of the
> parent anonymous union/structure. Thus the caller can calculate the real
> bit-offset from the root data structure.
> This also fixes the ftrace selftest issue which fails if the kernel
> supports only BTF args but not support field access.
> 
> This series can be applied on top of "probes/core" branch of
> https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git/
> 
> You can also get this series from:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/mhiramat/linux.git topic/fprobe-event-ext
> 
> Thank you,
> 
> ---
> 
> 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
> 
> 
>  Documentation/trace/fprobetrace.rst                |   64 ++-
>  include/linux/btf.h                                |    1 
>  kernel/bpf/btf.c                                   |    2 
>  kernel/trace/Makefile                              |    1 
>  kernel/trace/trace.c                               |    3 
>  kernel/trace/trace_btf.c                           |  109 ++++
>  kernel/trace/trace_btf.h                           |   11 
>  kernel/trace/trace_eprobe.c                        |    4 
>  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 
>  15 files changed, 637 insertions(+), 175 deletions(-)
>  create mode 100644 kernel/trace/trace_btf.c
>  create mode 100644 kernel/trace/trace_btf.h
> 
> --
> Masami Hiramatsu (Google) <mhiramat@kernel.org>
Steven Rostedt Aug. 22, 2023, 2:07 p.m. UTC | #2
On Tue, 22 Aug 2023 00:09:39 +0900
Masami Hiramatsu (Google) <mhiramat@kernel.org> wrote:

> Hi Steve,
> 
> Can you review this series?
> I would like to push this to for-next.
> 

I skimmed the patches and played a little with it, but as I've just
started my vacation I will not be able to do a full review before the
next merge window. But I don't want me to be the cause of you not
getting it in.

Feel free to add:

Acked-by: Steven Rostedt (Google) <rostedt@goodmis.org>

to the entire series. I'm sure I'll be playing with it after it gets
in, and we can fix any bugs that come up then.

-- Steve
Masami Hiramatsu (Google) Aug. 22, 2023, 2:38 p.m. UTC | #3
On Tue, 22 Aug 2023 10:07:16 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Tue, 22 Aug 2023 00:09:39 +0900
> Masami Hiramatsu (Google) <mhiramat@kernel.org> wrote:
> 
> > Hi Steve,
> > 
> > Can you review this series?
> > I would like to push this to for-next.
> > 
> 
> I skimmed the patches and played a little with it, but as I've just
> started my vacation I will not be able to do a full review before the
> next merge window. But I don't want me to be the cause of you not
> getting it in.
> 
> Feel free to add:
> 
> Acked-by: Steven Rostedt (Google) <rostedt@goodmis.org>
> 
> to the entire series. I'm sure I'll be playing with it after it gets
> in, and we can fix any bugs that come up then.

Thanks! I'll fix a bit about anon_stack thing and push it to probes/for-next.


> 
> -- Steve
Masami Hiramatsu (Google) Aug. 22, 2023, 2:46 p.m. UTC | #4
On Tue, 22 Aug 2023 10:07:16 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Tue, 22 Aug 2023 00:09:39 +0900
> Masami Hiramatsu (Google) <mhiramat@kernel.org> wrote:
> 
> > Hi Steve,
> > 
> > Can you review this series?
> > I would like to push this to for-next.
> > 
> 
> I skimmed the patches and played a little with it, but as I've just
> started my vacation I will not be able to do a full review before the
> next merge window. But I don't want me to be the cause of you not
> getting it in.
> 
> Feel free to add:
> 
> Acked-by: Steven Rostedt (Google) <rostedt@goodmis.org>
> 
> to the entire series. I'm sure I'll be playing with it after it gets
> in, and we can fix any bugs that come up then.

Thank you for your Ack and have a good vacation!
I will continue to test it and fix bugs if there is.

Thanks!

> 
> -- Steve