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: - v6 -> v7: - wrap err with libbpf_err - comments fix - handle btf_fd < 0 as vmlinux - patchset Reviewed-by: Jiri Olsa <jolsa@xxxxxxxxxx> - v6 https://lore.kernel.org/bpf/20250211111859.6029-1-chen.dylane@xxxxxxxxx - v5 -> v6: - remove fd_array_cnt - test case clean code - v5 https://lore.kernel.org/bpf/20250210055945.27192-1-chen.dylane@xxxxxxxxx - v4 -> v5: - use fd_array on stack - declare the scope of use of btf_fd - v4 https://lore.kernel.org/bpf/20250206051557.27913-1-chen.dylane@xxxxxxxxx/ - 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 | 19 ++- tools/lib/bpf/libbpf.map | 1 + tools/lib/bpf/libbpf_probes.c | 86 +++++++++++--- .../selftests/bpf/prog_tests/libbpf_probes.c | 111 ++++++++++++++++++ 4 files changed, 201 insertions(+), 16 deletions(-) -- 2.43.0