Re: [PATCHv4 0/3] pahole/kernel: Workaround dwarf bug for function encoding

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

 



On Fri, Nov 6, 2020 at 2:25 PM Jiri Olsa <jolsa@xxxxxxxxxx> wrote:
>
> hi,
> because of gcc bug [1] we can no longer rely on DW_AT_declaration
> attribute to filter out declarations and end up with just
> one copy of the function in the BTF data.
>
> It seems this bug is not easy to fix, but regardless if the
> it's coming soon, it's probably good idea not to depend so
> much only on dwarf data and make some extra checks.
>
> Thus for function encoding we are now doing following checks:
>   - argument names are defined for the function
>   - there's symbol and address defined for the function
>   - function address belongs to ftrace locations (new in v2)
>   - function is generated only once
>
> v4 changes:
>   - added acks
>   - renames and change functions_valid to be local var [Andrii]
>   - fixed error path (return err) of collect_symbols
>
> v3 changes:
>   - added Hao's ack for patch 1
>   - fixed realloc memory leak [Andrii]
>   - fixed addrs_cmp function [Andrii]
>   - removed SET_SYMBOL macro [Andrii]
>   - fixed the 'valid' function logic
>   - added .init.bpf.preserve_type check
>   - added iterator functions to new kernel section
>     .init.bpf.preserve_type [Yonghong]
>
> v2 changes:
>   - add check ensuring functions belong to ftrace's mcount
>     locations, this way we ensure to have in BTF only
>     functions available for ftrace - patch 2 changelog
>     describes all details
>   - use collect* function names [Andrii]
>   - use conventional size increase in realloc [Andrii]
>   - drop elf_sym__is_function check
>   - drop patch 3, it's not needed, because we follow ftrace
>     locations
>
> thanks,
> jirka
>
>
> [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97060
>

For the series:

Acked-by: Andrii Nakryiko <andrii@xxxxxxxxxx>



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux