https://sourceware.org/bugzilla/show_bug.cgi?id=33658

Mark Wielaard <mark at klomp dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at sourceware dot org   |mark at klomp dot org
   Last reconfirmed|                            |2025-12-05
             Status|UNCONFIRMED                 |ASSIGNED
     Ever confirmed|0                           |1
                 CC|                            |mark at klomp dot org

--- Comment #1 from Mark Wielaard <mark at klomp dot org> ---
(In reply to Shimin Guo from comment #0)
> In the function getcfi_shdr in libdw/dwarf_getcfi_elf.c, the code calls
> getcfi_scn_eh_frame immediately after seeing the .eh_frame section. If by
> that time, it hasn't yet seen the .eh_frame_hdr, the search table in
> .eh_frame_hdr will not be used, resulting in large performance penalty for
> large binaries.
> 
> We encountered the issue because we have a large binary created with the
> gold linker with hundreds of thousands of FDEs, where .eh_frame_hdr comes
> after .eh_frame. When using "perf script" on data the contains about 50k
> samples, the current version takes more than an hour, whereas with a fix
> like the following (not meant to be an actual patch, for illustration
> purposes only,) it takes only seconds.

Thanks for catching this. And thanks for the patch suggestion.
I rewrote it a little:
https://inbox.sourceware.org/elfutils-devel/[email protected]

It is a little hard to test since things do keep working, just very slowly.
If you could test this patch that would be very appreciated.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to