From: Yonghong Song <yhs@fb.com>
To: "Daniel Müller" <deso@posteo.net>,
bpf@vger.kernel.org, ast@kernel.org, andrii@kernel.org,
daniel@iogearbox.net, kernel-team@fb.com, quentin@isovalent.com
Subject: Re: [PATCH bpf-next 00/12] libbpf: Textual representation of enums
Date: Mon, 16 May 2022 23:42:15 -0700 [thread overview]
Message-ID: <78dbf509-7fd4-b5f4-6ac5-c972d2685af4@fb.com> (raw)
In-Reply-To: <20220516173540.3520665-1-deso@posteo.net>
On 5/16/22 10:35 AM, Daniel Müller wrote:
> This patch set introduces the means for querying a textual representation of
> the following BPF related enum types:
> - enum bpf_map_type
> - enum bpf_prog_type
> - enum bpf_attach_type
> - enum bpf_link_type
>
> To make that possible, we introduce a new public function for each of the types:
> libbpf_bpf_<type>_type_str.
>
> Having a way to query a textual representation has been asked for in the past
> (by systemd, among others). Such representations can generally be useful in
> tracing and logging contexts, among others. At this point, at least one client,
> bpftool, maintains such a mapping manually, which is prone to get out of date as
> new enum variants are introduced. libbpf is arguably best situated to keep this
> list complete and up-to-date. This patch series adds BTF based tests to ensure
> that exhaustiveness is upheld moving forward.
>
> The libbpf provided textual representation can be inferred from the
> corresponding enum variant name by removing the prefix and lowercasing the
> remainder. E.g., BPF_PROG_TYPE_SOCKET_FILTER -> socket_filter. Unfortunately,
> bpftool does not use such a programmatic approach for some of the
> bpf_attach_type variants. We propose a work around keeping the existing behavior
> for the time being in the patch titled "bpftool: Use
> libbpf_bpf_attach_type_str".
>
> The patch series is structured as follows:
> - for each enumeration type in {bpf_prog_type, bpf_map_type, bpf_attach_type,
> bpf_link_type}:
> - we first introduce the corresponding public libbpf API function
> - we then add BTF based self-tests
> - we lastly adjust bpftool to use the libbpf provided functionality
>
> Signed-off-by: Daniel Müller <deso@posteo.net>
>
> Daniel Müller (12):
> libbpf: Introduce libbpf_bpf_prog_type_str
> selftests/bpf: Add test for libbpf_bpf_prog_type_str
> bpftool: Use libbpf_bpf_prog_type_str
> libbpf: Introduce libbpf_bpf_map_type_str
> selftests/bpf: Add test for libbpf_bpf_map_type_str
> bpftool: Use libbpf_bpf_map_type_str
> libbpf: Introduce libbpf_bpf_attach_type_str
> selftests/bpf: Add test for libbpf_bpf_attach_type_str
> bpftool: Use libbpf_bpf_attach_type_str
> libbpf: Introduce libbpf_bpf_link_type_str
> selftests/bpf: Add test for libbpf_bpf_link_type_str
> bpftool: Use libbpf_bpf_link_type_str
>
> tools/bpf/bpftool/cgroup.c | 20 +-
> tools/bpf/bpftool/common.c | 46 ----
> tools/bpf/bpftool/feature.c | 87 +++++---
> tools/bpf/bpftool/link.c | 61 +++---
> tools/bpf/bpftool/main.h | 6 -
> tools/bpf/bpftool/map.c | 82 +++----
> tools/bpf/bpftool/prog.c | 51 +----
> tools/lib/bpf/libbpf.c | 160 ++++++++++++++
> tools/lib/bpf/libbpf.h | 36 ++++
> tools/lib/bpf/libbpf.map | 4 +
> .../selftests/bpf/prog_tests/libbpf_str.c | 201 ++++++++++++++++++
> 11 files changed, 539 insertions(+), 215 deletions(-)
> create mode 100644 tools/testing/selftests/bpf/prog_tests/libbpf_str.c
LGTM. Ack for the whole series.
Acked-by: Yonghong Song <yhs@fb.com>
prev parent reply other threads:[~2022-05-17 6:42 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-16 17:35 [PATCH bpf-next 00/12] libbpf: Textual representation of enums Daniel Müller
2022-05-16 17:35 ` [PATCH bpf-next 01/12] libbpf: Introduce libbpf_bpf_prog_type_str Daniel Müller
2022-05-16 17:35 ` [PATCH bpf-next 02/12] selftests/bpf: Add test for libbpf_bpf_prog_type_str Daniel Müller
2022-05-16 17:35 ` [PATCH bpf-next 03/12] bpftool: Use libbpf_bpf_prog_type_str Daniel Müller
2022-05-17 14:18 ` Quentin Monnet
2022-05-17 19:09 ` Daniel Müller
2022-05-16 17:35 ` [PATCH bpf-next 04/12] libbpf: Introduce libbpf_bpf_map_type_str Daniel Müller
2022-05-16 17:35 ` [PATCH bpf-next 05/12] selftests/bpf: Add test for libbpf_bpf_map_type_str Daniel Müller
2022-05-16 17:35 ` [PATCH bpf-next 06/12] bpftool: Use libbpf_bpf_map_type_str Daniel Müller
2022-05-16 17:35 ` [PATCH bpf-next 07/12] libbpf: Introduce libbpf_bpf_attach_type_str Daniel Müller
2022-05-16 17:35 ` [PATCH bpf-next 08/12] selftests/bpf: Add test for libbpf_bpf_attach_type_str Daniel Müller
2022-05-16 17:35 ` [PATCH bpf-next 09/12] bpftool: Use libbpf_bpf_attach_type_str Daniel Müller
2022-05-16 23:41 ` Andrii Nakryiko
2022-05-17 14:18 ` Quentin Monnet
2022-05-17 18:54 ` Daniel Müller
2022-05-18 13:31 ` Quentin Monnet
2022-05-18 23:54 ` Daniel Müller
2022-05-19 3:08 ` Dave Thaler
2022-05-16 17:35 ` [PATCH bpf-next 10/12] libbpf: Introduce libbpf_bpf_link_type_str Daniel Müller
2022-05-16 17:35 ` [PATCH bpf-next 11/12] selftests/bpf: Add test for libbpf_bpf_link_type_str Daniel Müller
2022-05-16 17:35 ` [PATCH bpf-next 12/12] bpftool: Use libbpf_bpf_link_type_str Daniel Müller
2022-05-16 23:43 ` [PATCH bpf-next 00/12] libbpf: Textual representation of enums Andrii Nakryiko
2022-05-17 18:59 ` Daniel Müller
2022-05-17 6:42 ` Yonghong Song [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=78dbf509-7fd4-b5f4-6ac5-c972d2685af4@fb.com \
--to=yhs@fb.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=deso@posteo.net \
--cc=kernel-team@fb.com \
--cc=quentin@isovalent.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox