On Mon, Mar 29, 2021 at 05:06:26PM +0100, Lorenz Bauer wrote: > On Mon, 29 Mar 2021 at 02:25, Martin KaFai Lau <kafai@xxxxxx> wrote: > > > > > > > > > > > > # pahole --version > > > > > v1.17 > > > > > > > > That is the most likely reason. > > > > In lib/Kconfig.debug > > > > we have pahole >= 1.19 requirement for BTF in modules. > > > > Though your config has CUBIC=y I suspect something odd goes on. > > > > Could you please try the latest pahole 1.20 ? > > > > > > Sure, I will give it a try tomorrow, I am not in control of the CI I ran. > > Could you also check the CONFIG_DYNAMIC_FTRACE and also try 'y' if it > > is not set? > > I hit the same problem on newer pahole: > > $ pahole --version > v1.20 > > CONFIG_DYNAMIC_FTRACE=y resolves the issue. Thanks for checking. pahole only generates the btf_id for external function and ftrace-able function. Some functions in the bpf_tcp_ca_kfunc_ids list are static (e.g. cubictcp_init), so it fails during resolve_btfids. I will post a patch to limit the bpf_tcp_ca_kfunc_ids list to CONFIG_DYNAMIC_FTRACE. I will address the pahole generation in a followup and then remove this CONFIG_DYNAMIC_FTRACE limitation.