From: Jiri Olsa <olsajiri@gmail.com>
To: Mark Rutland <mark.rutland@arm.com>
Cc: Andrii Nakryiko <andrii.nakryiko@gmail.com>,
Steven Rostedt <rostedt@goodmis.org>,
Masami Hiramatsu <mhiramat@kernel.org>,
Andrii Nakryiko <andrii@kernel.org>,
lkml <linux-kernel@vger.kernel.org>,
linux-trace-kernel@vger.kernel.org, bpf@vger.kernel.org,
Jackie Liu <liu.yun@linux.dev>
Subject: Re: [PATCH RFC] ftrace: Show all functions with addresses in available_filter_functions_addrs
Date: Fri, 9 Jun 2023 09:44:36 -0700 [thread overview]
Message-ID: <ZINW9FqIoja76DRa@krava> (raw)
In-Reply-To: <ZILhqvrjeFIPHauy@FVFF77S0Q05N>
On Fri, Jun 09, 2023 at 09:24:10AM +0100, Mark Rutland wrote:
> On Thu, Jun 08, 2023 at 04:55:40PM -0700, Andrii Nakryiko wrote:
> > On Thu, Jun 8, 2023 at 4:27 PM Steven Rostedt <rostedt@goodmis.org> wrote:
> > > On Thu, 8 Jun 2023 15:43:03 -0700 Andrii Nakryiko <andrii.nakryiko@gmail.com> wrote:
> > > > On Thu, Jun 8, 2023 at 2:26 PM Jiri Olsa <jolsa@kernel.org> wrote:
>
> > There are BPF tools that allow user to specify regex/glob of kernel
> > functions to attach to. This regex/glob is checked against
> > available_filter_functions to check which functions are traceable. All
> > good. But then also it's important to have corresponding memory
> > addresses for selected functions (for many reasons, e.g., to have
> > non-ambiguous and fast attachment by address instead of by name, or
> > for some post-processing based on captured IP addresses, etc). And
> > that means that now we need to also parse /proc/kallsyms and
> > cross-join it with data fetched from available_filter_functions.
> >
> > All this is unnecessary if avalable_filter_functions would just
> > provide function address in the first place. It's a huge
> > simplification. And saves memory and CPU.
>
> Do you need the address of the function entry-point or the address of the
> patch-site within the function? Those can differ, and the rec->ip address won't
> necessarily equal the address in /proc/kallsyms, so the pointer in
> /proc/kallsyms won't (always) match the address we could print for the ftrace site.
>
> On arm64, today we can have offsets of +0, +4, and +8, and within a single
> kernel image different functions can have different offsets. I suspect in
> future that we may have more potential offsets (e.g. due to changes for HW/SW
> CFI).
so we need that for kprobe_multi bpf link, which is based on fprobe,
and that uses ftrace_set_filter_ips to setup the ftrace_ops filter
and ftrace_set_filter_ips works fine with ip address being the address
of the patched instruction (it's matched in ftrace_location)
but right, I did not realize this.. it might cause confusion if people
don't know it's patch-side addresses.. not sure if there's easy way to
get real function address out of rec->ip, but it will also get more
complicated on x86 when IBT is enabled, will check
or we could just use patch-side addresses and reflect that in the file's
name like 'available_filter_functions_patch_addrs' .. it's already long
name ;-)
jirka
next prev parent reply other threads:[~2023-06-09 16:44 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-08 21:26 [PATCH RFC] ftrace: Show all functions with addresses in available_filter_functions_addrs Jiri Olsa
2023-06-08 22:43 ` Andrii Nakryiko
2023-06-08 23:27 ` Steven Rostedt
2023-06-08 23:55 ` Andrii Nakryiko
2023-06-09 0:13 ` Jiri Olsa
2023-06-09 8:24 ` Mark Rutland
2023-06-09 16:44 ` Jiri Olsa [this message]
2023-06-09 17:12 ` Steven Rostedt
2023-06-09 18:29 ` Andrii Nakryiko
2023-06-09 20:37 ` Jiri Olsa
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=ZINW9FqIoja76DRa@krava \
--to=olsajiri@gmail.com \
--cc=andrii.nakryiko@gmail.com \
--cc=andrii@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=liu.yun@linux.dev \
--cc=mark.rutland@arm.com \
--cc=mhiramat@kernel.org \
--cc=rostedt@goodmis.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.