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)  

Reply via email to