[lttng-dev] [RFC PATCH liburcu 0/2] Remove RCU requirements on hash table destroy

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Tue May 30 21:10:18 UTC 2017


The RCU lock-free hash table currently requires that the destroy
function should not be called from within RCU read-side critical
sections. This is caused by the lazy resize, which uses the call_rcu
worker thread, even though all it really needs is a workqueue/worker
thread scheme.

Implement an internal workqueue API in liburcu, and use it instead of
call_rcu in rculfhash to overcome this limitation.

Mathieu Desnoyers (2):
  Implement urcu workqueues internal API
  Use workqueue in rculfhash

 include/urcu/rculfhash.h |  15 +-
 src/Makefile.am          |   2 +-
 src/rculfhash-internal.h |   2 +-
 src/rculfhash.c          | 124 ++++++------
 src/workqueue.c          | 507 +++++++++++++++++++++++++++++++++++++++++++++++
 src/workqueue.h          | 104 ++++++++++
 6 files changed, 686 insertions(+), 68 deletions(-)
 create mode 100644 src/workqueue.c
 create mode 100644 src/workqueue.h

-- 
2.1.4



More information about the lttng-dev mailing list