mbox series

[bpf-next,v4,0/2] libbpf: introduce line_info and func_info getters

Message ID 20250403222809.90634-1-mykyta.yatsenko5@gmail.com (mailing list archive)
Headers show
Series libbpf: introduce line_info and func_info getters | expand

Message

Mykyta Yatsenko April 3, 2025, 10:28 p.m. UTC
From: Mykyta Yatsenko <yatsenko@meta.com>

This patchset introduces new libbpf API getters that enable the retrieval
of .BTF.ext line and func info.
This change enables users to load bpf_program directly using bpf_prog_load,
bypassing the higher-level bpf_object__load API. Providing line and
function info is essential for BPF program verification in some cases.

v3 -> v4
 * Fix nits in selftests, disable some asserts for s390x, as it seems that
kernel inserts preamble into function entry point.
 
v2 -> v3
 * Return ENOTSUPP if func or line info struct size differs from the one in
 uapi linux headers.
 * Add selftests.

v1 -> v2
 Move bpf_line_info_min and bpf_func_info_min from libbpf_internal.h to
 btf.h. Did not remove _min suffix, because there already are bpf_line_info
 and bpf_func_info structs in uapi/../bpf.h.

Mykyta Yatsenko (2):
  libbpf: add getters for BTF.ext func and line info
  selftests/bpf: add BTF.ext line/func info getter tests

 tools/lib/bpf/libbpf.c                        | 24 +++++++
 tools/lib/bpf/libbpf.h                        |  6 ++
 tools/lib/bpf/libbpf.map                      |  4 ++
 .../selftests/bpf/prog_tests/test_btf_ext.c   | 69 +++++++++++++++++++
 .../selftests/bpf/progs/test_btf_ext.c        | 26 +++++++
 5 files changed, 129 insertions(+)
 create mode 100644 tools/testing/selftests/bpf/prog_tests/test_btf_ext.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_btf_ext.c