Message ID | 20210907230116.1959597-1-yhs@fb.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | BPF |
Headers | show |
Series | bpf: add support for new btf kind BTF_KIND_TAG | expand |
Context | Check | Description |
---|---|---|
bpf/vmtest-bpf-next-PR | success | PR summary |
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Clearly marked for bpf-next |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | warning | 7 maintainers not CCed: kpsingh@kernel.org john.fastabend@gmail.com linux-kselftest@vger.kernel.org shuah@kernel.org songliubraving@fb.com netdev@vger.kernel.org kafai@fb.com |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 0 this patch: 0 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 51 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 0 this patch: 0 |
netdev/header_inline | success | Link |
bpf/vmtest-bpf-next | success | VM_Test |
On Tue, Sep 7, 2021 at 4:01 PM Yonghong Song <yhs@fb.com> wrote: > > Add btf_write tests with btf__add_tag() function. > > Signed-off-by: Yonghong Song <yhs@fb.com> > --- > tools/testing/selftests/bpf/btf_helpers.c | 7 +++++- > .../selftests/bpf/prog_tests/btf_write.c | 23 +++++++++++++++++++ > 2 files changed, 29 insertions(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/bpf/btf_helpers.c b/tools/testing/selftests/bpf/btf_helpers.c > index b692e6ead9b5..20dc8f4cb884 100644 > --- a/tools/testing/selftests/bpf/btf_helpers.c > +++ b/tools/testing/selftests/bpf/btf_helpers.c > @@ -24,11 +24,12 @@ static const char * const btf_kind_str_mapping[] = { > [BTF_KIND_VAR] = "VAR", > [BTF_KIND_DATASEC] = "DATASEC", > [BTF_KIND_FLOAT] = "FLOAT", > + [BTF_KIND_TAG] = "TAG", > }; > > static const char *btf_kind_str(__u16 kind) > { > - if (kind > BTF_KIND_DATASEC) > + if (kind > BTF_KIND_TAG) > return "UNKNOWN"; > return btf_kind_str_mapping[kind]; > } > @@ -177,6 +178,10 @@ int fprintf_btf_type_raw(FILE *out, const struct btf *btf, __u32 id) > case BTF_KIND_FLOAT: > fprintf(out, " size=%u", t->size); > break; > + case BTF_KIND_TAG: > + fprintf(out, " type_id=%u, comp_id=%d", seems like we use space as a separator, please remove comma for consistency > + t->type, btf_kflag(t) ? -1 : (int)btf_tag(t)->comp_id); > + break; > default: > break; > } [...]
On 9/8/21 10:35 PM, Andrii Nakryiko wrote: > On Tue, Sep 7, 2021 at 4:01 PM Yonghong Song <yhs@fb.com> wrote: >> >> Add btf_write tests with btf__add_tag() function. >> >> Signed-off-by: Yonghong Song <yhs@fb.com> >> --- >> tools/testing/selftests/bpf/btf_helpers.c | 7 +++++- >> .../selftests/bpf/prog_tests/btf_write.c | 23 +++++++++++++++++++ >> 2 files changed, 29 insertions(+), 1 deletion(-) >> >> diff --git a/tools/testing/selftests/bpf/btf_helpers.c b/tools/testing/selftests/bpf/btf_helpers.c >> index b692e6ead9b5..20dc8f4cb884 100644 >> --- a/tools/testing/selftests/bpf/btf_helpers.c >> +++ b/tools/testing/selftests/bpf/btf_helpers.c >> @@ -24,11 +24,12 @@ static const char * const btf_kind_str_mapping[] = { >> [BTF_KIND_VAR] = "VAR", >> [BTF_KIND_DATASEC] = "DATASEC", >> [BTF_KIND_FLOAT] = "FLOAT", >> + [BTF_KIND_TAG] = "TAG", >> }; >> >> static const char *btf_kind_str(__u16 kind) >> { >> - if (kind > BTF_KIND_DATASEC) >> + if (kind > BTF_KIND_TAG) >> return "UNKNOWN"; >> return btf_kind_str_mapping[kind]; >> } >> @@ -177,6 +178,10 @@ int fprintf_btf_type_raw(FILE *out, const struct btf *btf, __u32 id) >> case BTF_KIND_FLOAT: >> fprintf(out, " size=%u", t->size); >> break; >> + case BTF_KIND_TAG: >> + fprintf(out, " type_id=%u, comp_id=%d", > > seems like we use space as a separator, please remove comma for consistency ack > >> + t->type, btf_kflag(t) ? -1 : (int)btf_tag(t)->comp_id); >> + break; >> default: >> break; >> } > > [...] >
diff --git a/tools/testing/selftests/bpf/btf_helpers.c b/tools/testing/selftests/bpf/btf_helpers.c index b692e6ead9b5..20dc8f4cb884 100644 --- a/tools/testing/selftests/bpf/btf_helpers.c +++ b/tools/testing/selftests/bpf/btf_helpers.c @@ -24,11 +24,12 @@ static const char * const btf_kind_str_mapping[] = { [BTF_KIND_VAR] = "VAR", [BTF_KIND_DATASEC] = "DATASEC", [BTF_KIND_FLOAT] = "FLOAT", + [BTF_KIND_TAG] = "TAG", }; static const char *btf_kind_str(__u16 kind) { - if (kind > BTF_KIND_DATASEC) + if (kind > BTF_KIND_TAG) return "UNKNOWN"; return btf_kind_str_mapping[kind]; } @@ -177,6 +178,10 @@ int fprintf_btf_type_raw(FILE *out, const struct btf *btf, __u32 id) case BTF_KIND_FLOAT: fprintf(out, " size=%u", t->size); break; + case BTF_KIND_TAG: + fprintf(out, " type_id=%u, comp_id=%d", + t->type, btf_kflag(t) ? -1 : (int)btf_tag(t)->comp_id); + break; default: break; } diff --git a/tools/testing/selftests/bpf/prog_tests/btf_write.c b/tools/testing/selftests/bpf/prog_tests/btf_write.c index 022c7d89d6f4..d20db7814ed1 100644 --- a/tools/testing/selftests/bpf/prog_tests/btf_write.c +++ b/tools/testing/selftests/bpf/prog_tests/btf_write.c @@ -281,5 +281,28 @@ void test_btf_write() { "[17] DATASEC 'datasec1' size=12 vlen=1\n" "\ttype_id=1 offset=4 size=8", "raw_dump"); + /* TAG */ + id = btf__add_tag(btf, "tag1", -1, 16); + ASSERT_EQ(id, 18, "tag_id"); + t = btf__type_by_id(btf, 18); + ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "tag1", "tag_name"); + ASSERT_EQ(btf_kind(t), BTF_KIND_TAG, "tag_kind"); + ASSERT_EQ(btf_kflag(t), true, "tag_kflag"); + ASSERT_EQ(t->type, 16, "tag_type"); + ASSERT_EQ(btf_tag(t)->comp_id, 0, "tag_comp_id"); + ASSERT_STREQ(btf_type_raw_dump(btf, 18), + "[18] TAG 'tag1' type_id=16, comp_id=-1", "raw_dump"); + + id = btf__add_tag(btf, "tag2", 1, 14); + ASSERT_EQ(id, 19, "tag_id"); + t = btf__type_by_id(btf, 19); + ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "tag2", "tag_name"); + ASSERT_EQ(btf_kind(t), BTF_KIND_TAG, "tag_kind"); + ASSERT_EQ(btf_kflag(t), false, "tag_kflag"); + ASSERT_EQ(t->type, 14, "tag_type"); + ASSERT_EQ(btf_tag(t)->comp_id, 1, "tag_comp_id"); + ASSERT_STREQ(btf_type_raw_dump(btf, 19), + "[19] TAG 'tag2' type_id=14, comp_id=1", "raw_dump"); + btf__free(btf); }
Add btf_write tests with btf__add_tag() function. Signed-off-by: Yonghong Song <yhs@fb.com> --- tools/testing/selftests/bpf/btf_helpers.c | 7 +++++- .../selftests/bpf/prog_tests/btf_write.c | 23 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-)