This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libdw/22252] New: Parallel parsing of CU's DIEs from libdw


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

            Bug ID: 22252
           Summary: Parallel parsing of CU's DIEs from libdw
           Product: elfutils
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: libdw
          Assignee: unassigned at sourceware dot org
          Reporter: woodard at redhat dot com
                CC: elfutils-devel at sourceware dot org
  Target Milestone: ---

To speed up the processing of large ELF files which are common in HPC please
resolve the data races which prevent parallel parsing of CU's DIEs within ELF
files. We'd like to do something like:

 for(Dwarf_Off cu_off = 0;
            dwarf_next_unit(dbg(), cu_off, &next_cu_header, &cu_header_length,
                NULL, &abbrev_offset, &addr_size, &offset_size,
                &type_signaturep, NULL) == 0;
            cu_off = next_cu_header)
    {
        if(!dwarf_offdie_types(dbg(), cu_off + cu_header_length,
&current_cu_die))
            continue;
// Modified for parallelism: rather than a single DwarfWalker holding state,
// create a new context and clone before we spawn a thread
        push();
        DwarfWalker mod_walker(*this);
        pop();
        bool ret = cilk_spawn mod_walker.parseModule(false, fixUnknownMod);
//        bool ret = parseModule(false, fixUnknownMod);
        if(!ret) {
            cilk_sync;
            return false;
        }
        compile_offset = next_cu_header;
    }
    cilk_sync;

Code similar to this is being worked on for dyninst http://www.dyninst.org/

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]