Re: [PATCH bpf-next] bpftool: allow compile-time checks of BPF map auto-attach support in skeleton

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 18/06/2024 19:38, Andrii Nakryiko wrote:
> New versions of bpftool now emit additional link placeholders for BPF
> maps (struct_ops maps are the only maps right now that support
> attachment), and set up BPF skeleton in such a way that libbpf will
> auto-attach BPF maps automatically, assumming libbpf is recent enough
> (v1.5+). Old libbpf will do nothing with those links and won't attempt
> to auto-attach maps. This allows user code to handle both pre-v1.5 and
> v1.5+ versions of libbpf at runtime, if necessary.
> 
> But if users don't have (or don't want to) control bpftool version that
> generates skeleton, then they can't just assume that skeleton will have
> link placeholders. To make this detection possible and easy, let's add
> the following to generated skeleton header file:
> 
>   #define BPF_SKEL_SUPPORTS_MAP_AUTO_ATTACH 1
> 
> This can be used during compilation time to guard code that accesses
> skel->links.<map> slots.
> 
> Note, if auto-attachment is undesirable, libbpf allows to disable this
> through bpf_map__set_autoattach(map, false). This is necessary only on
> libbpf v1.5+, older libbpf doesn't support map auto-attach anyways.
> 
> Libbpf version can be detected at compilation time using
> LIBBPF_MAJOR_VERSION and LIBBPF_MINOR_VERSION macros, or at runtime with
> libbpf_major_version() and libbpf_minor_version() APIs.
> 
> Signed-off-by: Andrii Nakryiko <andrii@xxxxxxxxxx>

Looks good, thanks.

Acked-by: Quentin Monnet <qmo@xxxxxxxxxx>




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux