From: Ihor Solodrai <ihor.solodrai@linux.dev>
To: bpf@vger.kernel.org
Cc: andrii@kernel.org, ast@kernel.org, daniel@iogearbox.net,
eddyz87@gmail.com, mykolal@fb.com, jose.marchesi@oracle.com
Subject: [PATCH bpf-next v3 0/6] BTF: arbitrary __attribute__ encoding
Date: Thu, 30 Jan 2025 12:12:33 -0800 [thread overview]
Message-ID: <20250130201239.1429648-1-ihor.solodrai@linux.dev> (raw)
This patch series extends BPF Type Format (BTF) to support arbitrary
__attribute__ encoding.
Setting the kind_flag to 1 in BTF type tags and decl tags now changes
the meaning for the encoded tag, in particular with respect to
btf_dump in libbpf.
If the kflag is set, then the string encoded by the tag represents the
full attribute-list of an attribute specifier [1].
This feature will allow extending tools such as pahole and bpftool to
capture and use more granular type information, and make it easier to
manage compatibility between clang and gcc BPF compilers.
[1] https://gcc.gnu.org/onlinedocs/gcc-13.2.0/gcc/Attribute-Syntax.html
v2->v3: nit fixes suggested by Andrii
v1->v2:
- When checking for specific BTF tags in the verifier, make sure the
tag's kflag is 0
- Split docs and libbpf changes into separate patches
- Various renames, as suggested by Andrii and Eduard
v2: https://lore.kernel.org/bpf/20250127233955.2275804-1-ihor.solodrai@linux.dev/
v1: https://lore.kernel.org/bpf/20250122025308.2717553-1-ihor.solodrai@pm.me
Ihor Solodrai (6):
libbpf: introduce kflag for type_tags and decl_tags in BTF
docs/bpf: document the semantics of BTF tags with kind_flag
libbpf: check the kflag of type tags in btf_dump
selftests/bpf: add a btf_dump test for type_tags
bpf: allow kind_flag for BTF type and decl tags
selftests/bpf: add a BTF verification test for kflagged type_tag
Documentation/bpf/btf.rst | 25 ++-
include/uapi/linux/btf.h | 3 +-
kernel/bpf/btf.c | 26 ++--
tools/include/uapi/linux/btf.h | 3 +-
tools/lib/bpf/btf.c | 86 +++++++---
tools/lib/bpf/btf.h | 3 +
tools/lib/bpf/btf_dump.c | 5 +-
tools/lib/bpf/libbpf.map | 2 +
tools/testing/selftests/bpf/prog_tests/btf.c | 23 ++-
.../selftests/bpf/prog_tests/btf_dump.c | 147 +++++++++++++-----
tools/testing/selftests/bpf/test_btf.h | 6 +
11 files changed, 244 insertions(+), 85 deletions(-)
--
2.48.1
next reply other threads:[~2025-01-30 20:12 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-30 20:12 Ihor Solodrai [this message]
2025-01-30 20:12 ` [PATCH bpf-next v3 1/6] libbpf: introduce kflag for type_tags and decl_tags in BTF Ihor Solodrai
2025-01-30 20:12 ` [PATCH bpf-next v3 2/6] docs/bpf: document the semantics of BTF tags with kind_flag Ihor Solodrai
2025-01-30 20:12 ` [PATCH bpf-next v3 3/6] libbpf: check the kflag of type tags in btf_dump Ihor Solodrai
2025-01-30 20:12 ` [PATCH bpf-next v3 4/6] selftests/bpf: add a btf_dump test for type_tags Ihor Solodrai
2025-01-30 20:12 ` [PATCH bpf-next v3 5/6] bpf: allow kind_flag for BTF type and decl tags Ihor Solodrai
2025-01-31 2:55 ` Eduard Zingerman
2025-01-31 3:55 ` Ihor Solodrai
2025-01-30 20:12 ` [PATCH bpf-next v3 6/6] selftests/bpf: add a BTF verification test for kflagged type_tag Ihor Solodrai
2025-02-06 1:00 ` [PATCH bpf-next v3 0/6] BTF: arbitrary __attribute__ encoding patchwork-bot+netdevbpf
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=20250130201239.1429648-1-ihor.solodrai@linux.dev \
--to=ihor.solodrai@linux.dev \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=eddyz87@gmail.com \
--cc=jose.marchesi@oracle.com \
--cc=mykolal@fb.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