On Mon Aug 24, 2026 at 10:05 PM CEST, Jakub Kicinski wrote: > On Mon, 24 Aug 2026 18:31:37 +0200 [email protected] > wrote: >> From: Chia-Yu Chang <[email protected]> >> >> Hello, >> >> This series replaces the existing min_tso_segs() congestion control >> callback with a new tso_segs() callback that allows congestion control >> algorithms to provide an explicit TSO segment count for each data burst. >> >> To support BPF congestion controls, the series also exposes >> tcp_tso_autosize() as a BPF kfunc, allowing BPF implementations to >> reuse the kernel TSO autosizing logic while implementing custom >> tso_segs() callbacks. > > AI CI says: > > The bpf-ci build jobs are failing for this patch on all tested > architectures/toolchains (x86-64 gcc-15, x86-64 llvm-21, aarch64 gcc-15, > s390x gcc-15), all with the same link-time error: > > net/ipv4/tcp_bbr.o: in function `__BTF_ID__set8__tcp_bbr_check_kfunc_ids': > tcp_bbr.c:(.BTF_ids+0x...): undefined reference to `KF_DEPRECATED' > > This comes from the change to net/ipv4/tcp_bbr.c that marks the retained > bbr_min_tso_segs() kfunc entry with the KF_DEPRECATED flag: > > BTF_ID_FLAGS(func, bbr_min_tso_segs, KF_DEPRECATED) > BTF_ID_FLAGS(func, bbr_tso_segs) > > KF_DEPRECATED does not resolve to a usable symbol/flag in this tree, so > the BTF id set for tcp_bbr fails to link into vmlinux on every > architecture and toolchain -- it's a straight undefined-reference error, > not a per-arch/per-config issue. > > Could you drop the KF_DEPRECATED flag (or use a flag that this kfunc > infrastructure actually defines) on bbr_min_tso_segs, and re-verify that > the kernel links cleanly? A local `make net/ipv4/tcp_bbr.o vmlinux` > build (or the bpf-ci selftest build job) should reproduce this quickly. > > Full build log for reference: > > ld.lld-21: error: undefined symbol: KF_DEPRECATED > >>> referenced by usercopy_64.c > >>> vmlinux.o:(__BTF_ID__set8__tcp_bbr_check_kfunc_ids)
I think Chia-Yu's AI is hallucinating, it was a proposed flag but not added yet...
