BPF List
 help / color / mirror / Atom feed
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>

      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