On Mon, Nov 22, 2021 at 8:56 PM Yonghong Song <yhs@xxxxxx> wrote: > > btf_type_tag is a new llvm type attribute which is used similar > to kernel __user/__rcu attributes. The format of btf_type_tag looks like > __attribute__((btf_type_tag("tag1"))) > For the case where the attribute applied to a pointee like > #define __tag1 __attribute__((btf_type_tag("tag1"))) > #define __tag2 __attribute__((btf_type_tag("tag2"))) > int __tag1 * __tag1 __tag2 *g; > the information will be encoded in dwarf. > > In BTF, the attribute is encoded as a new kind > BTF_KIND_TYPE_TAG and latest bpf-next supports it. > > The patch added support in pahole, specifically > converts llvm dwarf btf_type_tag attributes to > BTF types. Please see individual patches for details. > > Changelog: > v1 -> v2: > - reorg an if condition to reduce nesting level. > - add more comments to explain how to chain type tag types. > > Yonghong Song (4): > libbpf: sync with latest libbpf repo > dutil: move DW_TAG_LLVM_annotation definition to dutil.h > dwarf_loader: support btf_type_tag attribute > btf_encoder: support btf_type_tag attribute > I thought that v1 was already applied, but either way LGTM. I'm not super familiar with the DWARF loader parts, so I mostly just read it very superficially :) Acked-by: Andrii Nakryiko <andrii@xxxxxxxxxx> > btf_encoder.c | 7 +++ > dutil.h | 4 ++ > dwarf_loader.c | 140 ++++++++++++++++++++++++++++++++++++++++++++++--- > dwarves.h | 38 +++++++++++++- > lib/bpf | 2 +- > pahole.c | 8 +++ > 6 files changed, 190 insertions(+), 9 deletions(-) > > -- > 2.30.2 >