From mboxrd@z Thu Jan 1 00:00:00 1970 From: mathieu.desnoyers@efficios.com (Mathieu Desnoyers) Date: Tue, 30 May 2017 17:10:18 -0400 Subject: [lttng-dev] [RFC PATCH liburcu 0/2] Remove RCU requirements on hash table destroy Message-ID: <1496178620-14755-1-git-send-email-mathieu.desnoyers@efficios.com> 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