Message ID | 20210124221519.219750-1-jolsa@kernel.org |
---|---|
Headers | show |
Series | libbpf: Add support to use optional extended section index table | expand |
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