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]

Re: [PATCH] libdw: add thread-safety to dwarf_getabbrev()


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


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