Hello Mark,
Next iteration of the patch(es) are ready, hosted on Github (git
request-pull output below). I think most of the issues we've discussed
have been addressed; the setup with stdatomic.h is a little WIP, I
wasn't certain how it should be done moving forward (and, I'm not all
that familiar with Autotools). The one extra line in dwarf_getcfi.c is
to account for a failure in the test suite when Valgrind is enabled
(didn't catch it the first time around).
I like the idea of "owner" threads (and I think it should be simple
enough to implement), but I'd like to do some performance comparisons
against the pthread_key_* option before adding too much more complexity.
-Jonathon
The following changes since commit
37fa94df1554aca83ec10ce50bc9bcb6957b204e:
config/elfutils.spec.in: package eu-elfclassify (2019-08-15 09:17:41
+0200)
are available in the Git repository at:
https://github.com/blue42u/elfutils.git
for you to fetch changes up to 9e40e0b8bb329692b1140e99896164bcb7f791b8:
lib + libdw: Add and use a concurrent version of the dynamic-size
hash table. (2019-08-25 18:36:38 -0500)
----------------------------------------------------------------
Jonathon Anderson (3):
Add configure options for Valgrind annotations.
Add some supporting framework for C11-style atomics.
libdw: Rewrite the memory handler to be thread-safe.
Srđan Milaković (1):
lib + libdw: Add and use a concurrent version of the dynamic-size
hash table.
ChangeLog | 5 +
configure.ac | 42 ++++
lib/ChangeLog | 11 +
lib/Makefile.am | 5 +-
lib/atomics.h | 37 +++
lib/dynamicsizehash_concurrent.c | 522
+++++++++++++++++++++++++++++++++++++++
lib/dynamicsizehash_concurrent.h | 118 +++++++++
lib/stdatomic-fbsd.h | 442
+++++++++++++++++++++++++++++++++
libdw/ChangeLog | 12 +
libdw/Makefile.am | 4 +-
libdw/dwarf_abbrev_hash.c | 2 +-
libdw/dwarf_abbrev_hash.h | 2 +-
libdw/dwarf_begin_elf.c | 13 +-
libdw/dwarf_end.c | 22 +-
libdw/dwarf_getcfi.c | 1 +
libdw/libdwP.h | 19 +-
libdw/libdw_alloc.c | 70 +++++-
17 files changed, 1300 insertions(+), 27 deletions(-)
create mode 100644 lib/atomics.h
create mode 100644 lib/dynamicsizehash_concurrent.c
create mode 100644 lib/dynamicsizehash_concurrent.h
create mode 100644 lib/stdatomic-fbsd.h