On Tue, Mar 30, 2021 at 11:44:39PM -0700, Andrii Nakryiko wrote: > On Mon, Mar 29, 2021 at 12:11 PM Martin KaFai Lau <kafai@xxxxxx> wrote: > > > > 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. > > We should still probably add CONFIG_DYNAMIC_FTRACE=y to selftests/bpf/config? I thought the tracing tests have been requiring this already. Together with the new kfunc call, it may be good to make it explicit in selftests/bpf/config. I can post a diff.