* [RELEASE] Userspace RCU 0.12.0
@ 2020-04-09 18:59 Mathieu Desnoyers
0 siblings, 0 replies; only message in thread
From: Mathieu Desnoyers @ 2020-04-09 18:59 UTC (permalink / raw)
To: linux-kernel, lttng-dev, rp
Cc: Paul E. McKenney, Stephen Hemminger, Alan Stern, Lai Jiangshan,
lwn, Alex Xu
Hi,
This announcement introduces the 0.12 version of liburcu.
liburcu is a LGPLv2.1 userspace RCU (read-copy-update) library. This
data synchronization library provides read-side access which scales
linearly with the number of cores. It does so by allowing multiple
copies of a given data structure to live at the same time, and by
monitoring the data structure accesses to detect grace periods after
which memory reclamation is possible.
liburcu-cds provides efficient data structures based on RCU and
lock-free algorithms. Those structures include hash tables, queues,
stacks, and doubly-linked lists.
* New in this release:
This 0.12 liburcu release is mainly done to add a DEFINE_URCU_TLS_INIT
macro to the urcu/tls-compat.h API. There is a very recent unfortunate
situation where a major user of liburcu (lttng-ust 2.12) added a use
of DEFINE_URCU_TLS such as:
DEFINE_URCU_TLS(ino_t, cached_net_ns) = NS_INO_UNINITIALIZED;
Which builds and runs fine for CONFIG_RCU_TLS, but fails to build for
!CONFIG_RCU_TLS. Fixing this required to extend the API and add a new
DEFINE_URCU_TLS_INIT() which could then be used in this way:
DEFINE_URCU_TLS_INIT(ino_t, cached_net_ns, NS_INO_UNINITIALIZED);
Support for FreeBSD and DragonFlyBSD is also added in this release,
contributed by Alex Xu. It uses _mutx_op() to implement the liburcu
futex APIs on FreeBSD.
Finally, a noteworthy change has been done to the urcu-bp flavor:
urcu_bp_register_thread() now performs the underlying lazy registration
of the caller thread rather than being a pure no-op. This is useful
for some real-time use-cases (e.g. Xenomai) which require to perform
urcu-bp thread registration early in the thread life-time before it
starts performing real-time tasks.
Thanks,
Mathieu
Project website: http://liburcu.org
Git repository: git://git.liburcu.org/urcu.git
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-04-09 18:59 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-04-09 18:59 [RELEASE] Userspace RCU 0.12.0 Mathieu Desnoyers
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.