More and more kfunc functions are being added to the kernel. Different prog types have different restrictions when using kfunc. Therefore, prog_kfunc probe is added to check whether it is supported, and the use of this api will be added to bpftool later. Change list: - v3 -> v4: - add fd_array init for kfunc in mod btf - add test case for kfunc in mod btf - refactor common part as prog load type check for libbpf_probe_bpf_{helper,kfunc} - v3 https://lore.kernel.org/bpf/20250124144411.13468-1-chen.dylane@xxxxxxxxx - v2 -> v3: - rename parameter off with btf_fd - extract the common part for libbpf_probe_bpf_{helper,kfunc} - v2 https://lore.kernel.org/bpf/20250123170555.291896-1-chen.dylane@xxxxxxxxx - v1 -> v2: - check unsupported prog type like probe_bpf_helper - add off parameter for module btf - check verifier info when kfunc id invalid - v1 https://lore.kernel.org/bpf/20250122171359.232791-1-chen.dylane@xxxxxxxxx Tao Chen (4): libbpf: Extract prog load type check from libbpf_probe_bpf_helper libbpf: Init fd_array when prog probe load libbpf: Add libbpf_probe_bpf_kfunc API selftests/bpf: Add libbpf_probe_bpf_kfunc API selftests tools/lib/bpf/libbpf.h | 18 ++- tools/lib/bpf/libbpf.map | 1 + tools/lib/bpf/libbpf_probes.c | 91 ++++++++++++-- .../selftests/bpf/prog_tests/libbpf_probes.c | 118 ++++++++++++++++++ 4 files changed, 214 insertions(+), 14 deletions(-) -- 2.43.0