BPF List
 help / color / mirror / Atom feed
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>, <kernel-team@fb.com>
Subject: [PATCH bpf-next v3 05/11] bpftool: add support for BTF_KIND_TAG
Date: Tue, 14 Sep 2021 15:30:31 -0700	[thread overview]
Message-ID: <20210914223031.246951-1-yhs@fb.com> (raw)
In-Reply-To: <20210914223004.244411-1-yhs@fb.com>

Added bpftool support to dump BTF_KIND_TAG information.
The new bpftool will be used in later patches to dump
btf in the test bpf program object file.

Currently, the tags are not emitted with
  bpftool btf dump file <path> format c
and they are silently ignored.  The tag information is
mostly used in the kernel for verification purpose and the kernel
uses its own btf to check. With adding these tags
to vmlinux.h, tags will be encoded in program's btf but
they will not be used by the kernel, at least for now.
So let us delay adding these tags to format C header files
until there is a real need.

Acked-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Yonghong Song <yhs@fb.com>
---
 tools/bpf/bpftool/btf.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/tools/bpf/bpftool/btf.c b/tools/bpf/bpftool/btf.c
index f7e5ff3586c9..49743ad96851 100644
--- a/tools/bpf/bpftool/btf.c
+++ b/tools/bpf/bpftool/btf.c
@@ -37,6 +37,7 @@ static const char * const btf_kind_str[NR_BTF_KINDS] = {
 	[BTF_KIND_VAR]		= "VAR",
 	[BTF_KIND_DATASEC]	= "DATASEC",
 	[BTF_KIND_FLOAT]	= "FLOAT",
+	[BTF_KIND_TAG]		= "TAG",
 };
 
 struct btf_attach_table {
@@ -347,6 +348,17 @@ static int dump_btf_type(const struct btf *btf, __u32 id,
 			printf(" size=%u", t->size);
 		break;
 	}
+	case BTF_KIND_TAG: {
+		const struct btf_tag *tag = (const void *)(t + 1);
+
+		if (json_output) {
+			jsonw_uint_field(w, "type_id", t->type);
+			jsonw_int_field(w, "component_idx", tag->component_idx);
+		} else {
+			printf(" type_id=%u component_idx=%d", t->type, tag->component_idx);
+		}
+		break;
+	}
 	default:
 		break;
 	}
-- 
2.30.2


  parent reply	other threads:[~2021-09-14 22:30 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-14 22:30 [PATCH bpf-next v3 00/11] bpf: add support for new btf kind BTF_KIND_TAG Yonghong Song
2021-09-14 22:30 ` [PATCH bpf-next v3 01/11] btf: change BTF_KIND_* macros to enums Yonghong Song
2021-09-15  0:13   ` Andrii Nakryiko
2021-09-14 22:30 ` [PATCH bpf-next v3 02/11] bpf: support for new btf kind BTF_KIND_TAG Yonghong Song
2021-09-15  0:15   ` Andrii Nakryiko
2021-09-14 22:30 ` [PATCH bpf-next v3 03/11] libbpf: rename btf_{hash,equal}_int to btf_{hash,equal}_int_tag Yonghong Song
2021-09-14 22:30 ` [PATCH bpf-next v3 04/11] libbpf: add support for BTF_KIND_TAG Yonghong Song
2021-09-15  0:18   ` Andrii Nakryiko
2021-09-14 22:30 ` Yonghong Song [this message]
2021-09-14 22:30 ` [PATCH bpf-next v3 06/11] selftests/bpf: test libbpf API function btf__add_tag() Yonghong Song
2021-09-14 22:30 ` [PATCH bpf-next v3 07/11] selftests/bpf: change NAME_NTH/IS_NAME_NTH for BTF_KIND_TAG format Yonghong Song
2021-09-14 22:30 ` [PATCH bpf-next v3 08/11] selftests/bpf: add BTF_KIND_TAG unit tests Yonghong Song
2021-09-15  0:19   ` Andrii Nakryiko
2021-09-14 22:30 ` [PATCH bpf-next v3 09/11] selftests/bpf: test BTF_KIND_TAG for deduplication Yonghong Song
2021-09-15  0:21   ` Andrii Nakryiko
2021-09-14 22:30 ` [PATCH bpf-next v3 10/11] selftests/bpf: add a test with a bpf program with btf_tag attributes Yonghong Song
2021-09-14 22:31 ` [PATCH bpf-next v3 11/11] docs/bpf: add documentation for BTF_KIND_TAG Yonghong Song
2021-09-15  0:22 ` [PATCH bpf-next v3 00/11] bpf: add support for new btf kind BTF_KIND_TAG Andrii Nakryiko
2021-09-15  1:55 ` Alexei Starovoitov
2021-09-15  5:00   ` Yonghong Song
2021-09-15  2:00 ` 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=20210914223031.246951-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=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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox