[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <47bbaa27-a112-b4a5-6251-d8aad31937a5@iogearbox.net>
Date: Wed, 4 Mar 2020 16:21:31 +0100
From: Daniel Borkmann <daniel@...earbox.net>
To: Andrii Nakryiko <andriin@...com>, bpf@...r.kernel.org,
netdev@...r.kernel.org, ast@...com
Cc: andrii.nakryiko@...il.com, kernel-team@...com
Subject: Re: [PATCH v3 bpf-next 0/3] Convert BPF UAPI constants into enum
values
On 3/3/20 1:32 AM, Andrii Nakryiko wrote:
> Convert BPF-related UAPI constants, currently defined as #define macro, into
> anonymous enums. This has no difference in terms of usage of such constants in
> C code (they are still could be used in all the compile-time contexts that
> `#define`s can), but they are recorded as part of DWARF type info, and
> subsequently get recorded as part of kernel's BTF type info. This allows those
> constants to be emitted as part of vmlinux.h auto-generated header file and be
> used from BPF programs. Which is especially convenient for all kinds of BPF
> helper flags and makes CO-RE BPF programs nicer to write.
>
> libbpf's btf_dump logic currently assumes enum values are signed 32-bit
> values, but that doesn't match a typical case, so switch it to emit unsigned
> values. Once BTF encoding of BTF_KIND_ENUM is extended to capture signedness
> properly, this will be made more flexible.
>
> As an immediate validation of the approach, runqslower's copy of
> BPF_F_CURRENT_CPU #define is dropped in favor of its enum variant from
> vmlinux.h.
>
> v2->v3:
> - convert only constants usable from BPF programs (BPF helper flags, map
> create flags, etc) (Alexei);
>
> v1->v2:
> - fix up btf_dump test to use max 32-bit unsigned value instead of negative one.
>
>
> Andrii Nakryiko (3):
> bpf: switch BPF UAPI #define constants used from BPF program side to
> enums
> libbpf: assume unsigned values for BTF_KIND_ENUM
> tools/runqslower: drop copy/pasted BPF_F_CURRENT_CPU definiton
>
> include/uapi/linux/bpf.h | 175 ++++++++++-------
> tools/bpf/runqslower/runqslower.bpf.c | 3 -
> tools/include/uapi/linux/bpf.h | 177 +++++++++++-------
> tools/lib/bpf/btf_dump.c | 8 +-
> .../bpf/progs/btf_dump_test_case_syntax.c | 2 +-
> 5 files changed, 224 insertions(+), 141 deletions(-)
>
Applied, thanks!
Powered by blists - more mailing lists