Re: [PATCH bpf-next v1 0/8] resolve_btfids: Discover kfuncs from BTF ID sets

Alan Maguire <[email protected]> Thu, 30 Jul 2026 13:38:46 +0100
Newsgroups org.kernel.vger.linux-input,org.kernel.vger.bpf
Message-ID <[email protected]>
On 23/07/2026 00:35, Ihor Solodrai wrote:
> This series develops resolve_btfids in preparation for bringing
> kernel-specific BTF transformations in tree, which will reduce kbuild
> dependency on pahole's features.
> 
> resolve_btfids currently identifies kfuncs by reading the "bpf_kfunc"
> decl tags pahole emits into vmlinux BTF. The series switches the
> source of truth to the BTF ID sets registered with
> BTF_KFUNCS_START()/END() in the kernel, which is the mechanism BPF
> verifier uses.
> 
> The series is based on patches #5 and #6 from the original
> "resolve_btfids: Implement BTF tags emission for kfuncs" series [1],
> and includes a few significant additions. Particularly the build time
> enforcement of kfunc flags consistency [2].
> 
> The series consists of:
>   - patches #1-#3 implement supporting infrastructure for the proper
>     kfunc discovery and deduplication
>   - patches #4-#5 expose btf__find_by_name_kind_own() and use it to
>     fix a latent bug in _impl func lookup
>   - patch #6 fixes inconsistent kfunc flags for HID kfuncs
>   - patch #7 implements kfunc discovery from BTF ID sets
>   - patch #8 adds enforcement of kfunc flags consistency
> 
> The resolve_btfids selftests patches have landed earlier [3].

I tested these changes and all looks good, so feel free to add

Tested-by: Alan Maguire <[email protected]>

to the series.

> 
> [1] https://lore.kernel.org/bpf/[email protected]/
> [2] https://lore.kernel.org/bpf/[email protected]/
> [3] https://lore.kernel.org/bpf/[email protected]/
> 
> ---
> 
> Changes compared to [1]:
>   - Drop the idempotency (ensure_*) machinery: assume valid input BTF (Andrii)
>   - Use rbtree to store the kfuncs (Andrii)
>   - Enforce full KF_* flag consistency as a build error (Eduard)
>   - Various cleanups and nits (Andrii, Emil, Jiri)
> 
> ---
> 
> Ihor Solodrai (8):
>   resolve_btfids: Implement generic ensure_mem() to grow arrays
>   resolve_btfids: Index BTF ID symbols by address
>   resolve_btfids: Keep collected kfuncs in a rbtree
>   libbpf: Export btf__find_by_name_kind_own()
>   resolve_btfids: Fix the _impl lookup for module BTF
>   HID: bpf: Make syscall kfunc flags match the struct_ops set
>   resolve_btfids: Discover kfuncs from BTF ID sets
>   resolve_btfids: Enforce consistent kfunc flags across BTF ID sets
> 
>  drivers/hid/bpf/hid_bpf_dispatch.c |  10 +-
>  tools/bpf/resolve_btfids/main.c    | 275 ++++++++++++++++++-----------
>  tools/lib/bpf/btf.h                |   2 +
>  tools/lib/bpf/libbpf.map           |   1 +
>  tools/lib/bpf/libbpf_internal.h    |   2 -
>  5 files changed, 181 insertions(+), 109 deletions(-)
>