]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
libbpf: feature-detect arg:ctx tag support in kernel
authorAndrii Nakryiko <andrii@kernel.org>
Thu, 18 Jan 2024 03:31:39 +0000 (19:31 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 18 Jan 2024 04:20:05 +0000 (20:20 -0800)
commit01b55f4f0cd6ad1a16eca6c43a3190005892ef91
tree379519a1519a94a55e0e0948c405959f1eadc984
parent33772ff3b887eb2f426ed66bcb1808837a40669c
libbpf: feature-detect arg:ctx tag support in kernel

Add feature detector of kernel-side arg:ctx (__arg_ctx) tag support. If
this is detected, libbpf will avoid doing any __arg_ctx-related BTF
rewriting and checks in favor of letting kernel handle this completely.

test_global_funcs/ctx_arg_rewrite subtest is adjusted to do the same
feature detection (albeit in much simpler, though round-about and
inefficient, way), and skip the tests. This is done to still be able to
execute this test on older kernels (like in libbpf CI).

Note, BPF token series ([0]) does a major refactor and code moving of
libbpf-internal feature detection "framework", so to avoid unnecessary
conflicts we keep newly added feature detection stand-alone with ad-hoc
result caching. Once things settle, there will be a small follow up to
re-integrate everything back and move code into its final place in
newly-added (by BPF token series) features.c file.

  [0] https://patchwork.kernel.org/project/netdevbpf/list/?series=814209&state=*

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20240118033143.3384355-2-andrii@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/lib/bpf/libbpf.c
tools/testing/selftests/bpf/prog_tests/test_global_funcs.c