Re: [PATCH dwarves v2 0/4] btf: support btf_type_tag attribute

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
>



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux