From: Alan Maguire <alan.maguire@oracle.com>
To: andrii@kernel.org, eddyz87@gmail.com, ast@kernel.org
Cc: daniel@iogearbox.net, martin.lau@linux.dev, song@kernel.org,
yonghong.song@linux.dev, john.fastabend@gmail.com,
kpsingh@kernel.org, sdf@google.com, haoluo@google.com,
jolsa@kernel.org, mcgrof@kernel.org, masahiroy@kernel.org,
nathan@kernel.org, mykolal@fb.com, dxu@dxuuu.xyz,
bpf@vger.kernel.org, Alan Maguire <alan.maguire@oracle.com>
Subject: [PATCH v6 bpf-next 9/9] kbuild,bpf: add module-specific pahole flags for distilled base BTF
Date: Thu, 13 Jun 2024 10:50:14 +0100 [thread overview]
Message-ID: <20240613095014.357981-10-alan.maguire@oracle.com> (raw)
In-Reply-To: <20240613095014.357981-1-alan.maguire@oracle.com>
Support creation of module BTF along with distilled base BTF;
the latter is stored in a .BTF.base ELF section and supplements
split BTF references to base BTF with information about base types,
allowing for later relocation of split BTF with a (possibly
changed) base. resolve_btfids detects the presence of a .BTF.base
section and will use it instead of the base BTF it is passed in
BTF id resolution.
Modules will be built with a distilled .BTF.base section for external
module build, i.e.
make -C. -M=path2/module
...while in-tree module build as part of a normal kernel build will
not generate distilled base BTF; this is because in-tree modules
change with the kernel and do not require BTF relocation for the
running vmlinux.
Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
---
scripts/Makefile.btf | 5 +++++
scripts/Makefile.modfinal | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/scripts/Makefile.btf b/scripts/Makefile.btf
index bca8a8f26ea4..191b4903e864 100644
--- a/scripts/Makefile.btf
+++ b/scripts/Makefile.btf
@@ -21,8 +21,13 @@ else
# Switch to using --btf_features for v1.26 and later.
pahole-flags-$(call test-ge, $(pahole-ver), 126) = -j --btf_features=encode_force,var,float,enum64,decl_tag,type_tag,optimized_func,consistent_func,decl_tag_kfuncs
+ifneq ($(KBUILD_EXTMOD),)
+module-pahole-flags-$(call test-ge, $(pahole-ver), 126) += --btf_features=distilled_base
+endif
+
endif
pahole-flags-$(CONFIG_PAHOLE_HAS_LANG_EXCLUDE) += --lang_exclude=rust
export PAHOLE_FLAGS := $(pahole-flags-y)
+export MODULE_PAHOLE_FLAGS := $(module-pahole-flags-y)
diff --git a/scripts/Makefile.modfinal b/scripts/Makefile.modfinal
index 3bec9043e4f3..1fa98b5e952b 100644
--- a/scripts/Makefile.modfinal
+++ b/scripts/Makefile.modfinal
@@ -41,7 +41,7 @@ quiet_cmd_btf_ko = BTF [M] $@
if [ ! -f vmlinux ]; then \
printf "Skipping BTF generation for %s due to unavailability of vmlinux\n" $@ 1>&2; \
else \
- LLVM_OBJCOPY="$(OBJCOPY)" $(PAHOLE) -J $(PAHOLE_FLAGS) --btf_base vmlinux $@; \
+ LLVM_OBJCOPY="$(OBJCOPY)" $(PAHOLE) -J $(PAHOLE_FLAGS) $(MODULE_PAHOLE_FLAGS) --btf_base vmlinux $@; \
$(RESOLVE_BTFIDS) -b vmlinux $@; \
fi;
--
2.31.1
next prev parent reply other threads:[~2024-06-13 9:51 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-13 9:50 [PATCH v6 bpf-next 0/9] bpf: support resilient split BTF Alan Maguire
2024-06-13 9:50 ` [PATCH v6 bpf-next 1/9] libbpf: add btf__distill_base() creating split BTF with distilled base BTF Alan Maguire
2024-06-28 23:30 ` Andrii Nakryiko
2024-06-13 9:50 ` [PATCH v6 bpf-next 2/9] selftests/bpf: test distilled base, split BTF generation Alan Maguire
2024-06-13 9:50 ` [PATCH v6 bpf-next 3/9] libbpf: split BTF relocation Alan Maguire
2024-06-14 0:26 ` Eduard Zingerman
2024-06-17 21:50 ` Andrii Nakryiko
2024-06-18 9:47 ` Alan Maguire
2024-08-09 22:30 ` Neill Kapron
2024-08-10 9:37 ` Alan Maguire
2024-06-13 9:50 ` [PATCH v6 bpf-next 4/9] selftests/bpf: extend distilled BTF tests to cover " Alan Maguire
2024-06-14 1:13 ` Eduard Zingerman
2024-06-13 9:50 ` [PATCH v6 bpf-next 5/9] libbpf: make btf_parse_elf process .BTF.base transparently Alan Maguire
2024-06-13 9:50 ` [PATCH v6 bpf-next 6/9] resolve_btfids: handle presence of .BTF.base section Alan Maguire
2024-06-14 1:19 ` Eduard Zingerman
2024-06-13 9:50 ` [PATCH v6 bpf-next 7/9] module, bpf: store BTF base pointer in struct module Alan Maguire
2024-06-17 21:50 ` Andrii Nakryiko
2024-06-13 9:50 ` [PATCH v6 bpf-next 8/9] libbpf,bpf: share BTF relocate-related code with kernel Alan Maguire
2024-06-14 22:49 ` Eduard Zingerman
2024-06-17 13:31 ` Alan Maguire
2024-06-17 16:46 ` Eduard Zingerman
2024-06-13 9:50 ` Alan Maguire [this message]
2024-06-17 21:50 ` [PATCH v6 bpf-next 0/9] bpf: support resilient split BTF Andrii Nakryiko
2024-06-17 22:00 ` patchwork-bot+netdevbpf
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=20240613095014.357981-10-alan.maguire@oracle.com \
--to=alan.maguire@oracle.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=dxu@dxuuu.xyz \
--cc=eddyz87@gmail.com \
--cc=haoluo@google.com \
--cc=john.fastabend@gmail.com \
--cc=jolsa@kernel.org \
--cc=kpsingh@kernel.org \
--cc=martin.lau@linux.dev \
--cc=masahiroy@kernel.org \
--cc=mcgrof@kernel.org \
--cc=mykolal@fb.com \
--cc=nathan@kernel.org \
--cc=sdf@google.com \
--cc=song@kernel.org \
--cc=yonghong.song@linux.dev \
/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