• Josh Poimboeuf's avatar
    objtool: Skip reading DWARF section data · b4c96ef0
    Josh Poimboeuf authored
    Objtool doesn't use DWARF at all, and the DWARF sections' data take up a
    lot of memory.  Skip reading them.
    
    Note this only skips the DWARF base sections, not the rela sections.
    The relas are needed because their symbol references may need to be
    reindexed if any local symbols get added by elf_create_symbol().
    
    Also note the DWARF data will eventually be read by libelf anyway, when
    writing the object file.  But that's fine, the goal here is to reduce
    *peak* memory usage, and the previous patch (which freed insn memory)
    gave some breathing room.  So the allocation gets shifted to a later
    time, resulting in lower peak memory usage.
    
    With allyesconfig + CONFIG_DEBUG_INFO:
    
    - Before: peak heap memory consumption: 29.93G
    - After:  peak heap memory consumption: 25.47G
    
    Link: https://lore.kernel.org/r/52a9698835861dd35f2ec35c49f96d0bb39fb177.1685464332.git.jpoimboe@kernel.orgSigned-off-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
    b4c96ef0
elf.c 29.4 KB