# Re: \[PATCHv4 0/2\] libbpf: Add support to use optional extended section index table

- From: Joe Lawrence \<joe.lawrence@redhat.com\>
- Date: 2021-01-27 12:42:53 
- List: netdev
- Page: https://ratatoskr.run/netdev/2021/01/7759174
- Thread: https://ratatoskr.run/netdev/2021/01/7758076/t.md

```text
On 1/24/21 5:15 PM, Jiri Olsa wrote:
> hi,
> kpatch guys hit an issue with pahole over their vmlinux, which
> contains many (over 100000) sections, pahole crashes.
>
> With so many sections, ELF is using extended section index table,
> which is used to hold values for some of the indexes and extra
> code is needed to retrieve them.
>
> This patchset adds the support for pahole to properly read string
> table index and symbol's section index, which are used in btf_encoder.
>
> This patchset also adds support for libbpf to properly parse .BTF
> section on such object.
>
> This patchset is based on previously posted fix [1].
>
> v4 changes:
>    - use size_t instead of Elf32_Word [Andrii]
>    - move elf_symtab__for_each_symbol_index and elf_sym__get
>      elf_symtab.h [Andrii]
>    - added ack for patch 1 [Andrii]
>    - changed elf_sym__get to be simpler [Andrii]
>    - changed elf_symtab__for_each_symbol_index to skip bad symbols
>    - use zalloc for struct elf_symtab allocation to get zero
>      initialized members
>
> v3 changes:
>    - directly bail out for !str in elf_section_by_name [Andrii]
>    - use symbol index in collect_function [Andrii]
>    - use symbol index in collect_percpu_var
>    - change elf_symtab__for_each_symbol_index, move elf_sym__get
>      to for's condition part
>    - libbpf patch got merged
>
> v2 changes:
>    - many variables renames [Andrii]
>    - use elf_getshdrstrndx() unconditionally [Andrii]
>    - add elf_symtab__for_each_symbol_index macro [Andrii]
>    - add more comments [Andrii]
>    - verify that extended symtab section type is SHT_SYMTAB_SHNDX [Andrii]
>    - fix Joe's crash in dwarves build, wrong sym.st_shndx assignment
>
> thanks,
> jirka
>
>
> [1] https://lore.kernel.org/bpf/20210113102509.1338601-1-jolsa@kernel.org/
> ---
> Jiri Olsa (2):
>        elf_symtab: Add support for SHN_XINDEX index to elf_section_by_name
>        bpf_encoder: Translate SHN_XINDEX in symbol's st_shndx values
>
>   btf_encoder.c | 33 +++++++++++++++++----------------
>   dutil.c       |  8 +++++++-
>   elf_symtab.c  | 41 +++++++++++++++++++++++++++++++++++++++--
>   elf_symtab.h  | 29 +++++++++++++++++++++++++++++
>   4 files changed, 92 insertions(+), 19 deletions(-)
>

For v4 patchset:

Tested-by: Joe Lawrence <joe.lawrence@redhat.com>

Thanks Jiri!

-- Joe

```
