[PATCH 3/3] lib + libdw: Add and use a concurrent version of the dynamic-size hash table.

Mark Wielaard mark@klomp.org
Mon Oct 28 20:12:00 GMT 2019

On Sun, 2019-10-27 at 17:13 +0100, Mark Wielaard wrote:
> On Fri, 2019-10-25 at 23:11 -0500, Jonathon Anderson wrote:
> > A quick grep -r shows that ITERATE and REVERSE are used for the 
> > asm_symbol_tab. If iteration and insertion are not concurrent we can 
> > easily add bidirectional iteration (using the same Treiber stack-like 
> > structure as used for the memory management). Also COMPARE is not 
> > defined to be (0) in this instance.
> Yes. We would need some other solution for the libasm code. But I think
> we can use the concurrent table for everything in libdw.

And everything in libdw besides the abbrev hash is the sig8 hash.
And adopting the concurrent dynamic size hash for that is almost
trivial. See attached.

I only tested it lightly because I don't have any large projects build
with -fdebug-types-dection. But it seems to work as intended.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-libdw-Use-dynamicsizehash_concurrent-for-Dwarf_Sig8_.patch
Type: text/x-patch
Size: 2662 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/elfutils-devel/attachments/20191028/bd3b5ffe/attachment.bin>

More information about the Elfutils-devel mailing list