public inbox for dwarves@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH bpf-next v4 0/8] resolve_btfids: Support for BTF modifications
@ 2025-12-18  0:33 Ihor Solodrai
  2025-12-18  0:33 ` [PATCH bpf-next v4 1/8] resolve_btfids: Rename object btf field to btf_path Ihor Solodrai
                   ` (7 more replies)
  0 siblings, 8 replies; 21+ messages in thread
From: Ihor Solodrai @ 2025-12-18  0:33 UTC (permalink / raw)
  To: Alan Maguire, Alexei Starovoitov, Andrea Righi, Andrew Morton,
	Andrii Nakryiko, Bill Wendling, Changwoo Min, Daniel Borkmann,
	David Vernet, Donglin Peng, Eduard Zingerman, Hao Luo, Jiri Olsa,
	John Fastabend, Jonathan Corbet, Justin Stitt, KP Singh,
	Martin KaFai Lau, Nathan Chancellor, Nick Desaulniers,
	Nicolas Schier, Shuah Khan, Song Liu, Stanislav Fomichev,
	Tejun Heo, Yonghong Song
  Cc: bpf, dwarves, linux-kbuild, linux-kernel, sched-ext

This series changes resolve_btfids and kernel build scripts to enable
BTF transformations in resolve_btfids. Main motivation for enhancing
resolve_btfids is to reduce dependency of the kernel build on pahole
capabilities [1] and enable BTF features and optimizations [2][3]
particular to the kernel.

Patches #1-#4 in the series are non-functional changes in
resolve_btfids.

Patch #5 makes kernel build notice pahole version changes between
builds.

Patch #6 changes minimum version of pahole required for
CONFIG_DEBUG_INFO_BTF to v1.22

Patch #7 makes a small prep change in selftests/bpf build.

The last patch (#8) makes significant changes in resolve_btfids and
introduces scripts/gen-btf.sh. See implementation details in the patch
description.

Successful BPF CI run: https://github.com/kernel-patches/bpf/actions/runs/20321339588

[1] https://lore.kernel.org/dwarves/ba1650aa-fafd-49a8-bea4-bdddee7c38c9@linux.dev/
[2] https://lore.kernel.org/bpf/20251029190113.3323406-1-ihor.solodrai@linux.dev/
[3] https://lore.kernel.org/bpf/20251119031531.1817099-1-dolinux.peng@gmail.com/

---

v3->v4:
  - add patch #4: "resolve_btfids: Always build with -Wall -Werror"
  - add patch #5: "kbuild: Sync kconfig when PAHOLE_VERSION changes" (Alan)
  - fix clang cross-compilation (LKP)
    https://lore.kernel.org/bpf/cecb6351-ea9a-4f8a-863a-82c9ef02f012@linux.dev/
  - remove GEN_BTF env variable (Andrii)
  - nits and cleanup in resolve_btfids/main.c (Andrii, Eduard)
  - nits in a patch bumping minimum pahole version (Andrii, AI)

v3: https://lore.kernel.org/bpf/20251205223046.4155870-1-ihor.solodrai@linux.dev/

v2->v3:
  - add patch #4 bumping minimum pahole version (Andrii, Alan)
  - add patch #5 pre-fixing resolve_btfids test (Donglin)
  - add GEN_BTF var and assemble RESOLVE_BTFIDS_FLAGS in Makefile.btf (Alan)
  - implement --distill_base flag in resolve_btfids, set it depending
    on KBUILD_EXTMOD in Makefile.btf (Eduard)
  - various implementation nits, see the v2 thread for details (Andrii, Eduard)

v2: https://lore.kernel.org/bpf/20251127185242.3954132-1-ihor.solodrai@linux.dev/

v1->v2:
  - gen-btf.sh and other shell script fixes (Donglin)
  - update selftests build (Donglin)
  - generate .BTF.base only when KBUILD_EXTMOD is set (Alan)
  - proper endianness handling for cross-compilation
  - change elf_begin mode from ELF_C_RDWR_MMAP to ELF_C_READ_MMAP_PRIVATE
  - remove compressed_section_fix()
  - nit NULL check in patch #3 (suggested by AI)

v1: https://lore.kernel.org/bpf/20251126012656.3546071-1-ihor.solodrai@linux.dev/

Ihor Solodrai (8):
  resolve_btfids: Rename object btf field to btf_path
  resolve_btfids: Factor out load_btf()
  resolve_btfids: Introduce enum btf_id_kind
  resolve_btfids: Always build with -Wall -Werror
  kbuild: Sync kconfig when PAHOLE_VERSION changes
  lib/Kconfig.debug: Set the minimum required pahole version to v1.22
  selftests/bpf: Run resolve_btfids only for relevant .test.o objects
  resolve_btfids: Change in-place update with raw binary output

 Documentation/scheduler/sched-ext.rst         |   1 -
 MAINTAINERS                                   |   1 +
 Makefile                                      |   9 +-
 init/Kconfig                                  |   2 +-
 lib/Kconfig.debug                             |  13 +-
 scripts/Makefile.btf                          |  26 +-
 scripts/Makefile.modfinal                     |   5 +-
 scripts/Makefile.vmlinux                      |   2 +-
 scripts/gen-btf.sh                            | 157 ++++++++
 scripts/link-vmlinux.sh                       |  42 +--
 tools/bpf/resolve_btfids/Makefile             |   3 +-
 tools/bpf/resolve_btfids/main.c               | 356 ++++++++++++------
 tools/sched_ext/README.md                     |   1 -
 tools/testing/selftests/bpf/.gitignore        |   3 +
 tools/testing/selftests/bpf/Makefile          |  11 +-
 .../selftests/bpf/prog_tests/resolve_btfids.c |   4 +-
 16 files changed, 446 insertions(+), 190 deletions(-)
 create mode 100755 scripts/gen-btf.sh

-- 
2.52.0


^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2025-12-18 22:39 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-18  0:33 [PATCH bpf-next v4 0/8] resolve_btfids: Support for BTF modifications Ihor Solodrai
2025-12-18  0:33 ` [PATCH bpf-next v4 1/8] resolve_btfids: Rename object btf field to btf_path Ihor Solodrai
2025-12-18  0:33 ` [PATCH bpf-next v4 2/8] resolve_btfids: Factor out load_btf() Ihor Solodrai
2025-12-18  0:33 ` [PATCH bpf-next v4 3/8] resolve_btfids: Introduce enum btf_id_kind Ihor Solodrai
2025-12-18  0:47   ` bot+bpf-ci
2025-12-18 17:46     ` Ihor Solodrai
2025-12-18 19:58       ` Andrii Nakryiko
2025-12-18 20:03         ` Ihor Solodrai
2025-12-18  0:33 ` [PATCH bpf-next v4 4/8] resolve_btfids: Always build with -Wall -Werror Ihor Solodrai
2025-12-18  0:33 ` [PATCH bpf-next v4 5/8] kbuild: Sync kconfig when PAHOLE_VERSION changes Ihor Solodrai
2025-12-18 19:21   ` Eduard Zingerman
2025-12-18 21:33     ` Ihor Solodrai
2025-12-18 22:36       ` Eduard Zingerman
2025-12-18 21:01   ` Andrii Nakryiko
2025-12-18  0:33 ` [PATCH bpf-next v4 6/8] lib/Kconfig.debug: Set the minimum required pahole version to v1.22 Ihor Solodrai
2025-12-18  0:33 ` [PATCH bpf-next v4 7/8] selftests/bpf: Run resolve_btfids only for relevant .test.o objects Ihor Solodrai
2025-12-18 19:22   ` Eduard Zingerman
2025-12-18  0:33 ` [PATCH bpf-next v4 8/8] resolve_btfids: Change in-place update with raw binary output Ihor Solodrai
2025-12-18 17:54   ` Ihor Solodrai
2025-12-18 21:15     ` Andrii Nakryiko
2025-12-18 22:39       ` Eduard Zingerman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox