From: Yonghong Song <yhs@fb.com>
To: <bpf@vger.kernel.org>
Cc: Alexei Starovoitov <ast@kernel.org>,
Andrii Nakryiko <andrii@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
"Jose E . Marchesi" <jose.marchesi@oracle.com>,
<kernel-team@fb.com>
Subject: [PATCH bpf-next 00/10] Support BTF_KIND_TYPE_TAG for btf_type_tag attributes
Date: Tue, 9 Nov 2021 21:19:40 -0800 [thread overview]
Message-ID: <20211110051940.367472-1-yhs@fb.com> (raw)
LLVM patches ([1] for clang, [2] and [3] for BPF backend)
added support for btf_type_tag attributes. This patch
added support for the kernel.
The main motivation for btf_type_tag is to bring kernel
annotations __user, __rcu etc. to btf. With such information
available in btf, bpf verifier can detect mis-usages
and reject the program. For example, for __user tagged pointer,
developers can then use proper helper like bpf_probe_read_kernel()
etc. to read the data.
BTF_KIND_TYPE_TAG may also useful for other tracing
facility where instead of to require user to specify
kernel/user address type, the kernel can detect it
by itself with btf.
Patch 1 added support in kernel, Patch 2 for libbpf and Patch 3
for bpftool. Patches 4-9 are for bpf selftests and Patch 10
updated docs/bpf/btf.rst file with new btf kind.
[1] https://reviews.llvm.org/D111199
[2] https://reviews.llvm.org/D113222
[3] https://reviews.llvm.org/D113496
Yonghong Song (10):
bpf: Support BTF_KIND_TYPE_TAG for btf_type_tag attributes
libbpf: Support BTF_KIND_TYPE_TAG
bpftool: Support BTF_KIND_TYPE_TAG
selftests/bpf: Test libbpf API function btf__add_type_tag()
selftests/bpf: Add BTF_KIND_TYPE_TAG unit tests
selftests/bpf: Test BTF_KIND_DECL_TAG for deduplication
selftests/bpf: Rename progs/tag.c to progs/btf_decl_tag.c
selftests/bpf: Add a C test for btf_type_tag
selftests/bpf: Clarify llvm dependency with btf_tag selftest
docs/bpf: Update documentation for BTF_KIND_TYPE_TAG support
Documentation/bpf/btf.rst | 13 +++-
include/uapi/linux/btf.h | 3 +-
kernel/bpf/btf.c | 14 +++-
tools/bpf/bpftool/btf.c | 2 +
tools/include/uapi/linux/btf.h | 3 +-
tools/lib/bpf/btf.c | 23 +++++++
tools/lib/bpf/btf.h | 9 ++-
tools/lib/bpf/btf_dump.c | 9 +++
tools/lib/bpf/libbpf.c | 31 ++++++++-
tools/lib/bpf/libbpf.map | 1 +
tools/lib/bpf/libbpf_internal.h | 2 +
tools/testing/selftests/bpf/README.rst | 9 +--
tools/testing/selftests/bpf/btf_helpers.c | 4 +-
tools/testing/selftests/bpf/prog_tests/btf.c | 64 ++++++++++++++++--
.../selftests/bpf/prog_tests/btf_tag.c | 44 ++++++++++--
.../selftests/bpf/prog_tests/btf_write.c | 67 +++++++++++--------
.../bpf/progs/{tag.c => btf_decl_tag.c} | 0
.../selftests/bpf/progs/btf_type_tag.c | 29 ++++++++
tools/testing/selftests/bpf/test_btf.h | 3 +
19 files changed, 281 insertions(+), 49 deletions(-)
rename tools/testing/selftests/bpf/progs/{tag.c => btf_decl_tag.c} (100%)
create mode 100644 tools/testing/selftests/bpf/progs/btf_type_tag.c
--
2.30.2
next reply other threads:[~2021-11-10 5:19 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-10 5:19 Yonghong Song [this message]
2021-11-10 5:19 ` [PATCH bpf-next 01/10] bpf: Support BTF_KIND_TYPE_TAG for btf_type_tag attributes Yonghong Song
2021-11-11 18:27 ` Andrii Nakryiko
2021-11-11 19:11 ` Yonghong Song
2021-11-10 5:19 ` [PATCH bpf-next 02/10] libbpf: Support BTF_KIND_TYPE_TAG Yonghong Song
2021-11-11 18:41 ` Andrii Nakryiko
2021-11-11 19:13 ` Yonghong Song
2021-11-10 5:19 ` [PATCH bpf-next 03/10] bpftool: " Yonghong Song
2021-11-11 18:43 ` Andrii Nakryiko
2021-11-10 5:20 ` [PATCH bpf-next 04/10] selftests/bpf: Test libbpf API function btf__add_type_tag() Yonghong Song
2021-11-11 18:44 ` Andrii Nakryiko
2021-11-10 5:20 ` [PATCH bpf-next 05/10] selftests/bpf: Add BTF_KIND_TYPE_TAG unit tests Yonghong Song
2021-11-11 18:45 ` Andrii Nakryiko
2021-11-10 5:20 ` [PATCH bpf-next 06/10] selftests/bpf: Test BTF_KIND_DECL_TAG for deduplication Yonghong Song
2021-11-11 18:49 ` Andrii Nakryiko
2021-11-11 19:13 ` Yonghong Song
2021-11-10 5:20 ` [PATCH bpf-next 07/10] selftests/bpf: Rename progs/tag.c to progs/btf_decl_tag.c Yonghong Song
2021-11-11 18:51 ` Andrii Nakryiko
2021-11-10 5:20 ` [PATCH bpf-next 08/10] selftests/bpf: Add a C test for btf_type_tag Yonghong Song
2021-11-11 18:55 ` Andrii Nakryiko
2021-11-11 19:19 ` Yonghong Song
2021-11-10 5:20 ` [PATCH bpf-next 09/10] selftests/bpf: Clarify llvm dependency with btf_tag selftest Yonghong Song
2021-11-11 18:56 ` Andrii Nakryiko
2021-11-10 5:20 ` [PATCH bpf-next 10/10] docs/bpf: Update documentation for BTF_KIND_TYPE_TAG support Yonghong Song
2021-11-11 18:56 ` Andrii Nakryiko
2021-11-10 5:28 ` [PATCH bpf-next 00/10] Support BTF_KIND_TYPE_TAG for btf_type_tag attributes Alexei Starovoitov
2021-11-10 6:26 ` Yonghong Song
2021-11-10 16:40 ` Alexei Starovoitov
2021-11-10 17:04 ` Yonghong Song
2021-11-11 1:47 ` Alexei Starovoitov
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=20211110051940.367472-1-yhs@fb.com \
--to=yhs@fb.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=jose.marchesi@oracle.com \
--cc=kernel-team@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.