From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 51514 invoked by alias); 4 Oct 2017 18:23:01 -0000 Mailing-List: contact elfutils-devel-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Post: List-Help: List-Subscribe: Sender: elfutils-devel-owner@sourceware.org Received: (qmail 51457 invoked by uid 48); 4 Oct 2017 18:22:56 -0000 From: "woodard at redhat dot com" To: elfutils-devel@sourceware.org Subject: [Bug libdw/22252] New: Parallel parsing of CU's DIEs from libdw Date: Wed, 04 Oct 2017 18:23:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: elfutils X-Bugzilla-Component: libdw X-Bugzilla-Version: unspecified X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: woodard at redhat dot com X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter cc target_milestone Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2017-q4/txt/msg00003.txt.bz2 https://sourceware.org/bugzilla/show_bug.cgi?id=3D22252 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 E= LF files. We'd like to do something like: for(Dwarf_Off cu_off =3D 0; dwarf_next_unit(dbg(), cu_off, &next_cu_header, &cu_header_leng= th, NULL, &abbrev_offset, &addr_size, &offset_size, &type_signaturep, NULL) =3D=3D 0; cu_off =3D next_cu_header) { if(!dwarf_offdie_types(dbg(), cu_off + cu_header_length, ¤t_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 =3D cilk_spawn mod_walker.parseModule(false, fixUnknownMod= ); // bool ret =3D parseModule(false, fixUnknownMod); if(!ret) { cilk_sync; return false; } compile_offset =3D next_cu_header; } cilk_sync; Code similar to this is being worked on for dyninst http://www.dyninst.org/ --=20 You are receiving this mail because: You are on the CC list for the bug.