• Martin KaFai Lau's avatar
    bpf: Remove CONFIG_X86 and CONFIG_DYNAMIC_FTRACE guard from the tcp-cc kfuncs · 42e4ebd3
    Martin KaFai Lau authored
    The commit 7aae231a ("bpf: tcp: Limit calling some tcp cc functions to CONFIG_DYNAMIC_FTRACE")
    added CONFIG_DYNAMIC_FTRACE guard because pahole was only generating
    btf for ftrace-able functions. The ftrace filter had already been
    removed from pahole, so the CONFIG_DYNAMIC_FTRACE guard can be
    removed.
    
    The commit 569c484f ("bpf: Limit static tcp-cc functions in the .BTF_ids list to x86")
    has added CONFIG_X86 guard because it failed the powerpc arch which
    prepended a "." to the local static function, so "cubictcp_init" becomes
    ".cubictcp_init". "__bpf_kfunc" has been added to kfunc
    since then and it uses the __unused compiler attribute.
    There is an existing
    "__bpf_kfunc static u32 bpf_kfunc_call_test_static_unused_arg(u32 arg, u32 unused)"
    test in bpf_testmod.c to cover the static kfunc case.
    
    cross compile on ppc64 with CONFIG_DYNAMIC_FTRACE disabled:
    > readelf -s vmlinux | grep cubictcp_
    56938: c00000000144fd00   184 FUNC    LOCAL  DEFAULT    2 cubictcp_cwnd_event 	    [<localentry>: 8]
    56939: c00000000144fdb8   200 FUNC    LOCAL  DEFAULT    2 cubictcp_recalc_[...]   [<localentry>: 8]
    56940: c00000000144fe80   296 FUNC    LOCAL  DEFAULT    2 cubictcp_init 	    [<localentry>: 8]
    56941: c00000000144ffa8   228 FUNC    LOCAL  DEFAULT    2 cubictcp_state 	    [<localentry>: 8]
    56942: c00000000145008c  1908 FUNC    LOCAL  DEFAULT    2 cubictcp_cong_avoid  [<localentry>: 8]
    56943: c000000001450800  1644 FUNC    LOCAL  DEFAULT    2 cubictcp_acked 	    [<localentry>: 8]
    
    > bpftool btf dump file vmlinux | grep cubictcp_
    [51540] FUNC 'cubictcp_acked' type_id=38137 linkage=static
    [51541] FUNC 'cubictcp_cong_avoid' type_id=38122 linkage=static
    [51543] FUNC 'cubictcp_cwnd_event' type_id=51542 linkage=static
    [51544] FUNC 'cubictcp_init' type_id=9186 linkage=static
    [51545] FUNC 'cubictcp_recalc_ssthresh' type_id=35021 linkage=static
    [51547] FUNC 'cubictcp_state' type_id=38141 linkage=static
    
    The patch removed both config guards.
    
    Cc: Jiri Olsa <jolsa@kernel.org>
    Signed-off-by: default avatarMartin KaFai Lau <martin.lau@kernel.org>
    Link: https://lore.kernel.org/r/20240322191433.4133280-1-martin.lau@linux.devSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    42e4ebd3
tcp_bbr.c 41.7 KB