From: Jiri Olsa <jolsa@redhat.com>
To: Martin KaFai Lau <kafai@fb.com>
Cc: dwarves@vger.kernel.org,
Arnaldo Carvalho de Melo <acme@kernel.org>,
bpf@vger.kernel.org, kernel-team@fb.com,
Andrii Nakryiko <andrii@kernel.org>, Jiri Olsa <jolsa@kernel.org>
Subject: Re: [PATCH dwarves] btf: Remove ftrace filter
Date: Thu, 6 May 2021 15:15:15 +0200 [thread overview]
Message-ID: <YJPr4ykRPCCQ4s0P@krava> (raw)
In-Reply-To: <20210506015824.2335125-1-kafai@fb.com>
On Wed, May 05, 2021 at 06:58:24PM -0700, Martin KaFai Lau wrote:
> BTF is currently generated for functions that are in ftrace list
> or extern.
>
> A recent use case also needs BTF generated for functions included in
> allowlist. In particular, the kernel
> commit e78aea8b2170 ("bpf: tcp: Put some tcp cong functions in allowlist for bpf-tcp-cc")
> allows bpf program to directly call a few tcp cc kernel functions. Those
> kernel functions are currently allowed only if CONFIG_DYNAMIC_FTRACE
> is set to ensure they are in the ftrace list but this kconfig dependency
> is unnecessary.
>
> Those kernel functions are specified under an ELF section .BTF_ids.
> There was an earlier attempt [0] to add another filter for the functions in
> the .BTF_ids section. That discussion concluded that the ftrace filter
> should be removed instead.
>
> This patch is to remove the ftrace filter and its related functions.
>
> Number of BTF FUNC with and without is_ftrace_func():
> My kconfig in x86: 40643 vs 46225
> Jiri reported on arm: 25022 vs 55812
>
> [0]: https://lore.kernel.org/dwarves/20210423213728.3538141-1-kafai@fb.com/
>
> Cc: Andrii Nakryiko <andrii@kernel.org>
> Cc: Jiri Olsa <jolsa@kernel.org>
> Signed-off-by: Martin KaFai Lau <kafai@fb.com>
> ---
> btf_encoder.c | 272 +-------------------------------------------------
> 1 file changed, 5 insertions(+), 267 deletions(-)
>
> diff --git a/btf_encoder.c b/btf_encoder.c
> index 80e896961d4e..55c5f8e30cac 100644
> --- a/btf_encoder.c
> +++ b/btf_encoder.c
> @@ -27,17 +27,8 @@
> */
> #define KSYM_NAME_LEN 128
>
> -struct funcs_layout {
> - unsigned long mcount_start;
> - unsigned long mcount_stop;
> - unsigned long mcount_sec_idx;
> -};
> -
> struct elf_function {
> const char *name;
> - unsigned long addr;
> - unsigned long size;
> - unsigned long sh_addr;
> bool generated;
> };
>
> @@ -98,250 +89,11 @@ static int collect_function(struct btf_elf *btfe, GElf_Sym *sym,
> }
>
we could also remove sym_sec_idx/last_idx right?
it's there for the sh.sh_addr, which got removed
jirka
> functions[functions_cnt].name = name;
> - functions[functions_cnt].addr = elf_sym__value(sym);
> - functions[functions_cnt].size = elf_sym__size(sym);
> - functions[functions_cnt].sh_addr = sh.sh_addr;
> functions[functions_cnt].generated = false;
> functions_cnt++;
> return 0;
> }
>
SNIP
next prev parent reply other threads:[~2021-05-06 13:15 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-06 1:58 [PATCH dwarves] btf: Remove ftrace filter Martin KaFai Lau
2021-05-06 13:15 ` Jiri Olsa [this message]
2021-05-06 19:59 ` Martin KaFai Lau
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=YJPr4ykRPCCQ4s0P@krava \
--to=jolsa@redhat.com \
--cc=acme@kernel.org \
--cc=andrii@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=dwarves@vger.kernel.org \
--cc=jolsa@kernel.org \
--cc=kafai@fb.com \
--cc=kernel-team@fb.com \
/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.